2012-04-06 87 views
0

我在winforms應用程序上有一個datagrid,並且當用戶雙擊數據網格上的一個單元格時,會調用以下方法。將發佈變量發佈到組合框控件文本值

private void dataCaseDiary_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
    { 
     try 
     { 
      int cellRow = e.RowIndex; 
      int cellCol = e.ColumnIndex; 
      DataTable table = (DataTable)dataCaseDiary.DataSource; 
      var currentDiaryID = table.Rows[cellRow]["DiaryID"]; 
      var currentUser = table.Rows[cellRow]["To Action"]; 
      var currentType = table.Rows[cellRow]["Diary Type"]; 
      txtDiaryID.Text = currentDiaryID.ToString(); 
      cboReassign.Text = currentUser.ToString(); 
      cboAmendDiaryType.Text = currentType.ToString(); 
     } 
     catch (Exception eX) 
     { 
      MessageBox.Show(eX.Message); 
     } 
    } 

然而異常在生產線

cboAmendDiaryType.Text = currentType.ToString(); 

例外規定,「對象引用不設置爲一個對象的一個​​實例」的發生。

我花了一些時間看這個,並找不到我做錯了什麼。這三個var變量都從數據網格中選取正確的值,其中兩個變量發佈到表單上控件的文本值,但是第三個變量失敗。

我使用'txt'的前綴表示文本框控件,'cbo'表示組合框。

+0

你確定你有「Diary Type」這個名字嗎?也許你需要「DiaryType」? – Reniuz 2012-04-06 13:59:11

+0

我也這麼認爲,但他說:「三個var變量都從數據網格中選取正確的值」 OP:您是否檢查過以確保它們實際上被填充? – Botonomous 2012-04-06 14:00:45

+0

您是否試圖將cboAmendDiaryType設置爲不在其項目列表中的值? – Justin 2012-04-06 14:01:03

回答

0

問題是table.Rows[cellRow]["Diary Type"]不存在並返回null。我猜「日記類型」是不正確的列名稱。

+0

不能因爲「var currentType」有一個值,當我通過。 – PJW 2012-04-06 15:30:21