OVH Cloud OVH Cloud

2 Region qui se croisent...

2 réponses
Avatar
amplitude
Bonjour,

Voil=E0 mon probl=E8me :

Dans mon appli j'ai plusieurs Controls, je peux lesd=E9placer =E0 l'aide =
de=20
la souris pour les placer o=F9 je veux sur un panel.

Maintenant, ce que je voudrais c'est que si je le mets dans une r=E9gion =

pr=E9cise, il fasse quelque chose (peut importe quoi pour le moment, par =

exemple, il change de couleur).

J'ai pens=E9 faire une r=E9gion pour chaque control, pas d eprob, puis un=
e=20
pour le controle qui se d=E9place. L=E0 o=F9 je coince, c'est comment sav=
oir=20
si la r=E9gion qui se d=E9place croise ma r=E9gion cible... ?

J'ai essay=E9 la m=E9thode Intersection, mais je ne comprend pas bien=20
comment elle marche, et la doc MSDN n'est pas tr=E8s clair sur mon besoin=
=2E..

merci de votre aide.

2 réponses

Avatar
Ambassadeur Kosh
en gros, elle a pour signification "x = x inter parametre"

faut juste cloner avant de réaliser le calcul, c'est tout.
ça a un interet quand tu calcul l'intersection de plusieurs objets, tu y
gagnes en nombre d'instances.

apres, ben tu regarde avec IsEmpty si il y'a eu intersection ou pas.

non ?
Avatar
amplitude
Ambassadeur Kosh a écrit :
en gros, elle a pour signification "x = x inter parametre"

faut juste cloner avant de réaliser le calcul, c'est tout.
ça a un interet quand tu calcul l'intersection de plusieurs objets, t u y
gagnes en nombre d'instances.

apres, ben tu regarde avec IsEmpty si il y'a eu intersection ou pas.

non ?




Ok, mais alors comment faire, voilà ce que j'ai :

Region AreaMove = new Region(new
rectangle(((ampLienDummy)sender).Location,((ampLienDummy)sender).Size));
Region AreaMove2 = AreaMove.Clone();
AreaMove2.Intersect(Area);
if(AreaMove2.IsEmpty())
{
this.label2.Text = "Intersection : oui";
}


"Aera" est la zone fixe où l'utilisateur doit placer la zone qu'il
bouge. Mais mon prob est qu'il me demande un objet graphique en
paramètre de IsEmpty(), et je ne pas quoi lui donner...

Merci encore.