Exception référence objet non définie
Bonjour à tous,
Dans mon programme, j'en suis à initialiser les contrôles d'une fenêtre WPF : textbox, label, ...
Pour ce faire, j'ai fait plusieurs méthodes afin d'initialiser/modifier mes contrôles indépendamment les uns des autres. En voici deux :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| private void InitClub()
{
Para p = new Para();
Int32 IdClub = p.DonneIdClub();
// Existance :
if (!Clubs.Existe(IdClub))
{
IdClub = -1;
p.EnregistreIdClub(-1);
}
// Initialisations :
if (IdClub == -1)
{ // Pas de club sélectionné :
LblNomEtat.Content = "Nom du club à créer :";
TxtNomClub.Text = "";
}
else
{
if (Clubs.DonneNbClubs() > 1)
{
LblNomEtat.Content = "Nom du club à modifier ou supprimer :";
}
else
{
LblNomEtat.Content = "Nom du club à modifier :";
}
TxtNomClub.Text = Clubs.DonneNom(IdClub);
}
} |
Code:
1 2 3 4
| private void InitClubInformation()
{
LblLongueurNomClub.Content = "Nombre de caractères : " + TxtNomClub.Text.Length + "/" + Cstes.ClubNomLongueur;
} |
C'est méthodes sont appelées notamment dans l'événement Loaded de la fenêtre.
La première méthode fonctionne parfaitement mais la deuxième lève l'exception
Citation:
System.NullReferenceException: 'La référence d'objet n'est pas définie à une instance d'un objet.'
et VS pointe sur mon label LblLongueurNomClub.
J'ai bien compris que VS me signale que cet objet n'a pas été défini mais je ne comprends pas ce qu'il veut de plus.
Le plus étrange, c'est que si je mets ma ligne de code LblLongueurNomClub.Content = "Nombre de caractères : " + TxtNomClub.Text.Length + "/" + Cstes.ClubNomLongueur; dans la première méthode, il n'y a pas d'exception.
Le nom de mon label est correct car j'utilise celui que VS me propose lors de sa saisie.
Rajouté après coup :
Peut-être un début de réponse : ma deuxième méthode est utilisée deux fois pour le moment. Dans l'événement Loaded de la fenêtre comme indiqué plus haut, mais aussi dans l'événement TextChanged de mon textbox TxtNomClub. Et c'est dans ce dernier que l'exception doit être levée puisque, en mettant en commentaire l'appel à InitClubInformation, pas d'exception ! Mon projet précédent était sous Windows Form est cela ne posait pas de problème.
Donc, du coup, comment, à partir de l'événement TextChanged de mon textbox, obtenir la fenêtre auquel il appartient ?
Merci d'avance pour votre aide.