je veux récupérer "le nom" du control sur lequel j'ai cliqué avec le bouton de la souris, par exemple si je click sur le button1 ou bien button2 ou bien listbox1, il me donne son nom.
Merci d'avance
je veux récupérer "le nom" du control sur lequel j'ai cliqué avec le bouton de la souris, par exemple si je click sur le button1 ou bien button2 ou bien listbox1, il me donne son nom.
Merci d'avance
execute une methode sur l'evenement click de chaque bouton...
après tu cast le sender en button et tu as ce que tu cherches
amuse toi bien avec ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 protected void Click(object sender,eventargs e) { Button b1 = sender as Button; Messagbox.Show(b1.Text); }
bossun, ça ne fonctionnera pas complétement pour la question posée. (De plus, c'est le nom qui est demandé, pas l'éventuel texte)
Il faut savoir que tous les contrôles d'une form sont, Lapalisse n'aurait pas mieux dit, des Control. Donc, il vaut mieux caster avec Control :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 protected void Click(object sender,eventargs e) { Control ctrl = sender as Control; if (ctrl != null) Messagbox.Show(ctrl.Name); }
oui effectivement ça repond plus à la question qui a été posée mais
bon il dit
par exemple si je click sur le button1 ou bien button2 ou bien listbox1, il me donne son nom.![]()
Mouais, je ne dirais rien qu'en à la mutualisation du code, c'est une bonne chose.
Je ne développe pas beaucoup d'IHM, mais lorsque j'en fait, tous mes boutons, listbox, combobox, ... réagissent à l'évenement clique déjà et je trouve cela plus pratique de mettre cette ligne de code dans chacune des fonctions.
En plus c plus simple si tu ne vas pas fiare l'action pour tout tes controles.
Car si tu abonnes la fonction à l'évenement clique elle s'exécutera à chaque clique
Alors que si tu met le code (ou un appel à une fonction) dans les diffs fonctions des controles réagissant à l'événement clique, cela ne se fait qu'en cas de clique sur le controle.
Merci pr vosr reponse je crois que j'ai pas bien m'expliquer "ptt problème de langue" voila ce que j'ai fait :
j'ai declaré un objet
puis dans chaque control :
Code : Sélectionner tout - Visualiser dans une fenêtre à part static Button lt = new Button();
et je récupère mon objet pour le glisser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { lt = button1; DoDragDrop(lt, DragDropEffects.Move); } private void button2_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { lt = button2; DoDragDrop(lt, DragDropEffects.Move); }
je veux à la place de mettre lt = buttonX ; ou bien lt = Control; "en générale" je veux récupérer automatiquement au niveau de panel1_DragDrop l'objet sur lequel je clique et aplliquer ma methode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void panel1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { lt.SetBounds(this.posx, this.posy, lt.Width, lt.Height); }
ça devient impratique qu'on j'aurai bcp de control diffrent ou bien si je veux ajouter des usercontrol !!
Partager