Savoir quel est l'évènement appelant

Messages postés
71
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
8 juin 2007
- - Dernière réponse : SyDaze
Messages postés
71
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
8 juin 2007
- 23 déc. 2005 à 14:08
Bonjour,


J'ai une méthode appelée lors d'un évènement mouseenter et nouseleave sur un composant.


Comment savoir quel évènement l'a appelée? Il faut surement utiliser EventArgs e mais je ne trouve pas la bonne propriété.


Merci.
Afficher la suite 

3 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
0
Merci
Salut, u veux dire quel composant a déclenché l'évènement ? Il faut caster l'objet sender.

par exemple :

( ( Control )sender ).Name; // Obtient le nom du contôle.
Commenter la réponse de Lutinore
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
51
0
Merci
Hello,

Si j'ai bien compris, tu as deux événements qui appels la même méthodes, et le traitement doit être différent.
A mon avis, il y a deux solutions suivant les cas :

Les traitements sont très différents, à ce moments, fait deux méthodes différentes


private
void textBox1_MouseEnter(
object sender, System.EventArgs e)
{
//DoSomething

}


private
void textBox1_MouseLeave(
object sender, System.EventArgs e)
{
//DoSomethingElse

}

ou alors ton traitement ne diffère que légérement. A ce moment, fait tout de même deux méthodes différentes appelées lors des événements, et ajoutes-en une troisième qui effectue le code identique, et qui peut éventuellement prendre en paramètre un bool pour te dire le type d'événement.


private void textBox1_MouseEnter(object
sender, System.EventArgs e)
{
DoSomethingOnMouseEvent(sender, e/*, true*/
);
}


private void textBox1_MouseLeave(object
sender, System.EventArgs e)
{
DoSomethingOnMouseEvent(sender, e/*, false*/);
}


private void DoSomethingOnMouseEvent(object sender, System.EventArgs e/*, bool IsOnEnter*/
)
{
//DoSomething
}

Amicalement, SharpMao
Commenter la réponse de SharpMao
Messages postés
71
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
8 juin 2007
0
Merci
Effectivement,
SharpMao tu as bien compris ce que je voulais faire… mon but ici était de
garder une seule méthode. Apparemment c'est impossible, bon ce n'est pas grave
c'était surtout dans un soucis d'optimisation du code.

Je te remercie pour ta réponse.
Commenter la réponse de SyDaze