我有一个datagridview
,它包含5行,列名是:XS,S,M,L和XL。
流程首先用户将选择品牌(CHL和XRA),如果用户选择XRA,列名称将重命名为 - ,1L,2L,3L,4L。
这里的问题是,每当我从单元格中获取列名重命名的值时,我就会遇到这种错误:对象引用未设置为对象的实例。
这是我从单元格中获取值的示例代码:
dvJOBranch.Rows(0).Cells.Item("M").Value.ToString
如果不重命名该列,此代码完全有效,但如果我重命名该列,则会出错。
答案 0 :(得分:1)
如果列的索引没有更改,您可以通过索引而不是其名称来访问它:
dvJOBranch.Rows(0).Cells.Item(2).Value.ToString 'third column
请注意,对象引用未设置为对象的实例表示您拥有NullReferenceException
上面的代码行假设:
dvJOBranch.Rows(0)
不为空,否则访问Cell
会抛出NullReferenceException
dvJOBranch.Rows(0).Cells.Item(2)
不为空,否则访问Item(2).Value
会抛出NullReferenceException
dvJOBranch.Rows(0).Cells.Item(2).Value
不为空,否则调用.ToString()
方法会抛出NullReferenceException
您需要进行适当的测试以处理空值。
If dvJOBranch.Rows(0).Cells.Item(2).Value IsNot Nothing Then
(...)
End If