C# system.NulleReferenceException

Fermé
mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007 - 12 oct. 2006 à 21:46
mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007 - 13 oct. 2006 à 15:53
Bonjour

je développe une application en C# avec Visual studio, la compilation se passe bien, mais lorsque je veux cliquer sur un menuitems, je vois cet erreur, System.NullReferenceException.
pourtant, il est bien déclaré....

private System.Windows.Forms.MenuItem menuItem12;

this.menuItem12.Index = 1;
this.menuItem12.Text = "Liste Fournisseurs";
this.menuItem12.Click += new System.EventHandler(this.menuItem12_Click);

je n'arrive pas a trouver comment corriger la situation....

Merci

2 réponses

teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
13 oct. 2006 à 09:44
Salut,

Tu as bien défini ton EventHandler?

J'ai peur que ça soit un peu léger ton code et ton erreur pour qu'on puisse t'aider!
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
13 oct. 2006 à 10:36
Bonjour,

L'eventHandler ne peut pas être le problème, sinon cela ne passerait pas la compilation.
Par contre, dans le code que tu donnes, je ne vois pas de
menuItem12 = new System.Windows.Forms.MenuItem();
Si tu ne l'instancies pas, il aura toujours la valeur NULL, ce qui, quand tu en appelles un membre (menuItem12.qqchose = blabla), lève l'exception "NullPointerException".

Xavier
0
mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007 8 > Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
13 oct. 2006 à 14:37
effectivement, la ligne n'est pas la....
mais elle n'y est aps non plus pour les autres menuitems... qui sont foncitonnels eux....

si j'ajoute cett ligne comme suit, je j'ai plus d'erreur nullreferenceexception, mais il ne se passe rien, jai positionné un point d'arret dans le handler, et rien ne se passe

this.menuItem14.Index = 1;
this.menuItem14.Text = "Liste fournisseurs";
this.menuItem14 = new System.Windows.Forms.MenuItem();
this.menuItem14.Click += new System.EventHandler(this.menuItem14_Click);


private void menuItem14_Click(object sender, System.EventArgs e)
{
Liste_fns();
}

merci
0
mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007 8
13 oct. 2006 à 14:39
l'eventhendler a été défini en doublecliquant sur l'élément dans le form[design], donc je prends pour acquis qu'il est correct puisqu'il est généré automatiquement
0
mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007 8 > mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007
13 oct. 2006 à 15:01
jai revérifié, et la ligne que tu m'as dite est déja présente plus haut dans le initialise component
0
mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007 8 > mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007
13 oct. 2006 à 15:17
est-ce que c'est possible que j'aie trop d'éléments sur mon form pour ce que visualstudio peut supporter??

j'ai +/- 180 lignes de déclarations d'instances dans la procédure InitializeComponent()

Merci
0
mowuffe Messages postés 27 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 22 janvier 2007 8
13 oct. 2006 à 15:53
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
InitializeComponent_User();

}


private void InitializeComponent()
{

...

this.menuItem14 = new System.Windows.Forms.MenuItem();
this.menuItem15 = new System.Windows.Forms.MenuItem();

...

//
// menuItem14
//
this.menuItem14.Index = 1;
this.menuItem14.Text = "Liste fournisseurs";
this.menuItem14.Click += new System.EventHandler(this.menuItem14_Click);
//
// menuItem15
//
this.menuItem15.Index = 2;
this.menuItem15.Text = "Liste clients";
this.menuItem15.Click += new System.EventHandler(this.menuItem15_Click);

...

}
0