2013-08-30 25 views
1

不工作這是我在datagridview單元格的值設置代碼:設置單元格的值在datagridview的形式負載

For i = 0 To dvJOBranch.Rows.Count - 1 
     dvJOBranch.Rows(i).Cells.Item("XS").Value = 0 
     dvJOBranch.Rows(i).Cells.Item("S").Value = 0 
     dvJOBranch.Rows(i).Cells.Item("M").Value = 0 
     dvJOBranch.Rows(i).Cells.Item("L").Value = 0 
     dvJOBranch.Rows(i).Cells.Item("XL").Value = 0 
Next 

其在按鈕事件的工作,顯示錶單的事件,而不是在形式上負荷,並沒有錯誤。

我的問題是爲什麼它不能在表單加載工作?

+0

是存在的形式加載錯誤? –

+0

theres沒有在表單加載錯誤,但我已經做了一個工作,現在它正在工作。 – Matthew

回答

3

我的猜測是您正在使用DataGridView.AutoGenerateColumns函數性,即使您設置了DataSource屬性,DatagridView也不會在顯示網格之前創建列。

它可以解釋爲什麼它不在formload(網格尚未初始化),它工作之後(例如顯示的事件)。

所以它可能是:

  • 您嘗試訪問還不存在(但代碼應該拋出一個異常)
  • 或訪問有效的行或列中的項目,但它們被替換時,網格首次顯示或再次綁定到數據源,因此您的代碼無效(可能是您的情況,因爲您沒有提到異常)。

使用form_shown也許是可能的解決方法,但我建議你使用DataGridView.DataBindingComplete事件,更特別設計來處理這種情況。

也看到這些相關的問題(同一原因):

+0

這裏很清楚的解釋先生,謝謝你的信息:) – Matthew

相關問題