Comment définir des événement dans un control crée dynamiquement? [Résolu]

Signaler
Messages postés
46
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
1 juillet 2008
-
Messages postés
46
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
1 juillet 2008
-
Bonsoir,
J'ai trouvé pas mal de sujet qui parle de la création d'un control dynamiquement, mais le problème c'est pour ce control crée dynamiquement je vaux définir des événement par exemple on_text_change

j'ai besoin d'un coup de main.

i have a dream

3 réponses

Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
je crois que ca répond pas a sa question.

Dans ta classe, tu dois déclarer un membre de type event :

public event EventHandler MyEvent;
ou si ton event prend un argument
public event EventHandler<tontypeeventargs> MyEvent;

dans ce cas, tu dois créer une classe tontypeeventargs, sachant que cette classe doit hériter de eventargs

a partir de la, tu peux t'abonner a cet event de manière tout a fait classique en dehors de ta classe (mais il est jamais levé).

il faut ensuite créer une méthode qui va permettre de lever l'event. en général on essaie de les implémenter selon les recommandations msdn (donc comme suit :)

protected virtual void OnMyEvent()
//ou protected virtual void OnMyEvent(tontypeeventargs arg)
{
if (MyEvent != null)
{
MyEvent(this, EventArgs.Empty);
//ou MyEvent(this, arg);
}
}

il ne te reste qu'a appeler cette méthode lorsque tu veux lever l'event.
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,

Pour ajouter un événement :
this.TonControl.TextChanged += new System.EventHandler(this.TonControl_OnTextChanged);


Et la sub qui va avec :
private void TonControl_OnTextChanged(object sender, EventArgs e) {
     
}

__________
  Kenji
Messages postés
46
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
1 juillet 2008
1
Merci c'est ce que me manquait !!

i have a dream