Bonjour, je débute sous C" et je vourais savoir comment faire pour retrouver un Panel lorsque l'on dispose de ses coordonnées X et Y.
Merci
Bonjour, je débute sous C" et je vourais savoir comment faire pour retrouver un Panel lorsque l'on dispose de ses coordonnées X et Y.
Merci
Bonjour,
Qu'est ce que tu entends par "retrouver" ton panel ?? Le retrouver dans la liste des contrôles ?
Si c'est ça, utilise la méthode GetChildAtPoint(new point(x,y)); de ton formulaire.
D'accord, merci, j'ai un autre petit problème, c'est que je ne réussis pas à retrouver les coordonnées du sender d'un évenement lorsque je veux redéfinir le DragEnter et le DragAndDrop d'un Control dérivé de Panel,...
J'ai donc le code suivant :
Seulement je me rends compte maintenant que les coordonnées x et y obtenues sont celles du point ou j'ai déposé le Panel, et donc, quand je fais : form.GetChildAtPoint(pt); tout ce que j'obtiens c'est le panel de réception, et non pas celui que je drag,...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 protected override void OnDragDrop(DragEventArgs drgevent) { int x, y; x = drgevent.X; y = drgevent.Y; Point pt=new Point(x,y); Form form_above = base.FindForm(); Control ctrl=form_above.GetChildAtPoint(pt); //mais ici j'obtiens le mauvais controle Panel pan = (Panel)ctrl; Ticket tic = (Ticket)pan; this.Add((Ticket)tic); base.OnDragDrop(drgevent); }
Et là, je ne sais pas comment faire pour retrouver les coordonnées non pas de l'objet récepteur, mais du sender !
J'espère que c'est compréhensible,...
Bonjour,
Au lieu de passer par une surcharge de ta méthode essaies d'utiliser l'évent DragDrop où tu as bien l'objet sender
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 private void monobjet_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { }
Merci,
J'ai essayé de redéfinir dans ma classe Planning la fonction:
Mais je ne rentre jamais dedans, je ne comprends pas pourquoi, et pourtant, je rentre dans la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void Planning_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { nbrTicket = 5; //ici point d'arrêt, juste pour voir si ça rentre dedans }
Mais là, je n'ai pas l'objet sender !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part protected override void OnDragDrop(DragEventArgs drgevent)
Je ne sais plus quoi faire !!!
Ok, j'ai compris ce que tu voulais dire à propos de la redéfinition du :
Seulement, le problème, c'est que je voudrais réussir à faire une classe dans laquelle ce comportement soit toujours le même, de manière à n'avoir pas à le recoder à chaque fois, et c'est là que ça coince, parceque, si cette fonction dépend de la form dans laquelle je me trouve, j'ai l'objet sender, mais je dois la redéfinir à chaque fois, tandis que si je redéfinis la méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private void Planning_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
Je ne réussis pas à accéder à mon objet dragué
Code : Sélectionner tout - Visualiser dans une fenêtre à part protected override void OnDragDrop(DragEventArgs drgevent)
Si quelqu'un à une idée, surtout qu'il n'hésite pas, parce que moi c'est vide !
Partager