1

这是我在单元格中设置值的代码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

它在按钮事件中工作,显示表单事件,但不在表单加载中,并且没有错误。

我的问题是为什么它在表单加载中不起作用?

4

1 回答 1

3

我的猜测是您正在使用该DataGridView.AutoGenerateColumns功能,即使您设置了DataSource属性,在DatagridView显示网格之前也不会创建列。

它可以解释为什么它不工作formload(网格尚未初始化)并且它在之后工作(例如显示的事件)。

所以有可能:

  • 您尝试访问尚不存在的项目(但代码应引发异常)
  • 或者您访问有效的行或列,但它们在第一次显示网格或再次绑定到数据源时被替换,因此您的代码无效(可能是您的情况,因为您没有提及异常)。

使用form_shown可能是一种可能的解决方法,但我建议您使用DataGridView.DataBindingComplete更专门设计用于处理这种情况的事件。

另请参阅这些相关问题(相同原因):

于 2013-09-23T11:27:44.467 回答