[VB.Net] Présence d'un contrôle aux point X;Y

morickno Messages postés 117 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 26 juin 2007 - 23 mai 2006 à 13:58
alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 - 23 mai 2006 à 18:15
Bonjour,

Dans un panel d'une form, j'ai des picture box positionnées aléatoirement. Le but est de savoir s'il y à une picture box au point X;Y que je connai.
Comment peut t'on tester la présence d'un contrôle picture box à ce point X;Y

Merci

3 réponses

JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
23 mai 2006 à 16:45
Je ne connais pas .net mais je pense simplement en regardant si
picturebox1.left < X < picturebox1.picturebox1.left + picturebox1.width
picturebox1.top < Y < picturebox1.top + picturebox1.height
pareil pour chaque picturebox

Jer
0
morickno Messages postés 117 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 26 juin 2007
23 mai 2006 à 17:59
J'ai une solution similaire.
Le problème c'est que lorsque j'ai plusieurs de picture box, je suis obligé de toutes les tester et arriver à 300 picture box je ne pense pas que ca optimise bien.
C'est pour cela que je recherche une fonction qui me retoure true ou false si à ces points, il y a déja un contrôle. Ansi j'ai 1 ligne de code au lieu de 300

Merci pour d'autres idées
0
alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 1
23 mai 2006 à 18:15
Et pour parcourir tous les picturebox de ton Panel (PA) tu peux faire :
Dim c as control

for each c in pa.controls
    If c.getype.tostring = "System.Windows.Forms.PictureBox" then
       if c.left<.... enfin comme le post précédent, quoi
    end if
next

Autre solution, mais j'ai jamais testé :
PA.GetchildatPoint qui te retourne le controle présent à un point donné. Tu n'as plus qu'à tester ensuite si c'est bien un pictureBox avec une condition comme celle ci-dessus.

Est-ce que cela répond à ta question ?
AlicVB
0
Rejoignez-nous