C# system.NulleReferenceException

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

  1. Contributeur
    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
    1. 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
    2. @Reivax962effectivement, 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
    3. 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
    4. @mowuffejai revérifié, et la ligne que tu m'as dite est déja présente plus haut dans le initialise component
      0
    5. @mowuffeest-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
  2. 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