2017-01-01 68 views
0

最近添加到我的C#應用​​程序的Toolstrip,並且當點擊調用該函數的菜單項時出現錯誤,但是當從Windowsform Button調用該函數時,它工作得很完美。 以下是我的函數:ToolstripMenuItem點擊提示錯誤?

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"; 


        } 
       } 

      } 

我用下面的線來連接功能和工具條菜單項Click事件:

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

但是當點擊工具條菜單項也引發錯誤: 「對象引用未設置爲對象的實例「。 但奇怪的部分是,當我使用Windowsform按鈕和下面的代碼調用該函數:

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

據我的代碼工作沒有任何錯誤!!!

+0

它給出了哪一行?我只能根據你的代碼做出假設。它可以是'gridEX',也可以是null,'GetDataRows'返回null,使'rr'爲空,或者其中一個單元格檢索'rr'上的索引。 'rr [「Select」]''''rr [「DocumentNumber」]'另請參閱:http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-doi-i-fix-它 – Bauss

+0

沒有我的網格不爲空,當點擊Button1時它沒有任何錯誤 –

+0

是的,因爲一個已經開發了多年的運行時突然在這樣簡單的代碼中隨機拋出空值的異常?不要聽起來粗魯或任何事情,但你應該*總是*假設你自己的代碼是不正確的。您是否嘗試使用調試器檢查* ALL *值,而不僅僅是您的網格,還有您的方法/行索引中返回哪些值。 – Bauss

回答

0

我已經在my gridex中找到名爲ActAsSelector的行爲了Select Column並且設置爲True,那麼現在我的問題已經解決了。