Attraper un évènement [Resolu ] - C#/.NET managed - Programmation
Marsh Posté le 06-09-2006 à 13:26:12
a mon avis tu n'utilise déjà pas visual studio... Tu as une grosse lacune en C# si tu ne sais déjà pas manuellement déclencher un event.
exemple pour un bouton:
btnInfo.Click +=new EventHandler(btnInfo_Click);
et tu crées ton handler
Marsh Posté le 06-09-2006 à 14:36:43
A coller dans le code de ta Form :
Code :
|
Et ça, c'est garanti que ça fonctionne.
Avec VS.Net : tu tapes override dans ta form, et tu verras la liste des méthodes que tu peux redéfinir (ça évite de tout taper et de faire des fot de sintax)
La solution de moi23372 fonctionne aussi, bien qu'un peu moins performante.
Elle consiste à s'abonner à l'évènement, ce que l'on utilise préférentiellement depuis un contrôle extérieur au contrôle courant.
Ex : pour associer du code à un bouton :
* Depuis le code de la form qui le contient :
mycustombutton.Click += new new EventHandler(mycustombutton_Click);
* Depuis le code du bouton :
protected override void OnClick(EventArgs e)
L'inconvénient de la redéfinition c'est qu'il ne faut pas oublier d'appeler la méthode de base, sous risque d'avoir des effets de bord.
L'avantage, c'est que tu choisis quand tu appelles la méthode de base, donc tu peux placer ton code avant ou après le déclenchement de l'évènement pour les contrôle abonnés.
Marsh Posté le 07-09-2006 à 15:26:53
Merci à vous 2.
J'ai essayé avec la méthode de moi23372 et ca marche maintenant !!
Marsh Posté le 06-09-2006 à 12:04:39
Salut à tous,
je n'arrive pas à faire fonctionner les redéfinitons en C#.
Je m'explique : j'ai une Form ( appelée MainForm ) sur laquelle je voudrais redéfinir l'évènement OnResize().
J'utilise donc la propriété "override" mais cela ne veut jamais compiler. J'ai tout essayé, avec ou sans 'MainForm_' devant, avec ou sans "override" ... et soit ca ne compile pas, soit ca ne marche pas.
Comment faire ?
a+
Edit : et j'ai le même pb sur un double click d'une ListView
Message édité par Chandy le 07-09-2006 à 15:27:34