Bonjour, j'ai créé une classe composant, qui hérite de TextBox
dans laquelle j'ai créé un evenement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public class clsTextBox : TextBox
EventHandler étant un délégué fournit par le FrameWork .NET
Code : Sélectionner tout - Visualiser dans une fenêtre à part public event EventHandler TextChecked;
Ensuite je déclenche cet evenement à partir de
Code : Sélectionner tout - Visualiser dans une fenêtre à part public delegate void EventHandler(Object sender, EventArgs e);
Jusque là tout vas bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 private void clsTextBox_TextChanged(object sender, System.EventArgs e) { try { // déclencher l'event this.TextChecked(sender,e); } catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Cependant lors de l'utilisation de ce composant, via code :l'erreur System.NullReferenceException: Object reference not set to an instance of an object se produit lorsque je déclenche l'evenement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Form01.myclsTextBox1.text="TOTO"
MAIS quand je saisi une valeur directement dans le controle, tout ce passe bien.
J'ai remarqué que si j'ajoute une gestion de l'evenement dans la form01 même vide, l'erreur ne se produit pas :
Ce qui voudrait dire qu'il m'est impossible de déclencher un evenement si aucune gestion ou liaison de cet evenement existe sur form01 ???? Là je comprends plus rien moa !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void myclsTextBox1_TextChecked(object sender, System.EventArgs e) { }
Question : Doit-on OBLIGATOIREMENT avoir une gestion d'évenement ou un evenement peut il être déclenché dans le "vide" ?
Merci d'avance !
Partager