2017-01-01 6 views
0

Kürzlich hinzugefügt Extrastrip zu meiner C# -Anwendung, und es gibt Fehler beim Klicken auf Menüelement, die die Funktion aufrufen, aber wenn die Funktion von WindowsForm Schaltfläche aufrufen funktioniert es perfekt. Folgende ist meine Funktion:ToolstripMenuItem Klicken Sie auf einen Fehler?

private void ShowAddDocument(object sender, EventArgs e) 
    { 

      foreach (var rr in this.gridEX1.GetDataRows()) 
      { 

       if (rr.Cells["Select"].Value != null) 
       { 
        if (rr.Cells["DocumentNumber"].Value.ToString() != "") 
        { 

         rr.BeginEdit(); 
         rr.Cells["Select"].Value = null; 
         rr.EndEdit(); 
        } 
        else 
        { 
         this.gridEX1.Tag = "SELECTED"; 


        } 
       } 

      } 

und ich verwende folgende Linienfunktion und Toolstrip MenuItem Click-Ereignis zu verbinden: „Object Reference: ein Fehler erhöhen

this.userControl11.IssueDocMenuItem.Click += new System.EventHandler(ShowAddDocument); 

aber wenn klicken Sie auf Toolstrip Menüpunkt nicht auf Instanz eines Objekts gesetzt ". Teil aber seltsam ist, wenn ich Windowstaste verwenden und rufen Sie die Funktion durch folgenden Code:

private void button1_Click(object sender, EventArgs e) 
    { 
     ShowAddDocument(sender, e); 
    } 

Es ist mein Code funktioniert ohne Fehler !!!.

+0

Und für welche Linie ist es gegeben? Ich kann nur basierend auf Ihrem Code Annahmen treffen. Es ist entweder 'gridEX', das null ist,' GetDataRows', das null zurückgibt, wodurch 'rr' null wird oder eine der Zellen mit Indizes auf' rr' abruft, die null ex ist. 'rr [" Select "]' und 'rr [" DocumentNumber "]' Siehe auch: http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- it – Bauss

+0

nein mein Gitter ist nicht null und wenn man auf Button1 klickt funktioniert es ohne Fehler –

+0

Ja, weil eine Laufzeit, die seit vielen Jahren entwickelt wurde, plötzlich Ausnahmen für Nullwerte zufällig in so einfachem Code auslöst? Um nicht unhöflich zu klingen oder so, aber Sie sollten IMMER * davon ausgehen, dass Ihr eigener Code inkorrekt ist. Haben Sie versucht, * ALL * -Werte mit einem Debugger und nicht nur mit Ihrem Grid zu überprüfen, auch welche Werte in Ihren Methoden-/Zeilenindizes zurückgegeben werden. – Bauss

Antwort

0

Ich habe bereits Verhalten namens ActAsSelector in meinem Gridex Select Column gefunden und gesetzt ist auf True dann mein Problem gelöst. Jetzt glücklich.

Verwandte Themen