当前位置 : 主页 > 编程语言 > c语言 >

[VB.NET]对象引用未设置为对象的实例

来源:互联网 收集:自由互联 发布时间:2021-06-24
我正在尝试将我的datagridview中选定行的列值添加到Collection(但如果我使用List或Array,我会得到相同的错误) 码: Dim zdgv = MyDataGridView For a = 0 To zdgv.SelectedRows.Count - 1 MsgBox(zdgv.Rows(zdgv.Selecte
我正在尝试将我的datagridview中选定行的列值添加到Collection(但如果我使用List或Array,我会得到相同的错误)

码:

Dim zdgv = MyDataGridView

    For a = 0 To zdgv.SelectedRows.Count - 1

        MsgBox(zdgv.Rows(zdgv.SelectedRows(a).Index).Cells(0).Value.ToString)
        Try
            MyCollection.Add(zdgv.Rows(zdgv.SelectedRows(a).Index).Cells(0).Value.ToString)
        Catch ex As Exception
            MsgBox(ex.Message)
            MsgBox(ex.InnerException)
        End Try

    Next

ex.Message = Object reference not set to an instance of an object

ex.InnerException = empty

ex.InnerException.Message = Makes program crash, goes to code screen,
highlights MsgBox(ex.InnerException) line, and gives error: Object
reference not set to an instance of an object

附加信息:
在zdgv上使用QuickWatch为我提供了所有信息.在它之后的行上使用它(zdgv)说:’Rows’没有声明.由于其保护级别,它可能无法访问.

附:是的我用谷歌搜索,但没有问题是类似的.是的我在这里搜索但没有信息.我也尝试了r / visualbasic – 没什么……
我甚至尝试用这个错误搜索c#相关的东西 – 没什么. :/

提前致谢.

编辑1:我尝试在新项目中创建非数据绑定datagridview,并从中添加一个值到集合 – 相同的错误.我想我应该去google关于“将对象的引用设置为对象的实例”.

EDIT2:这个失败了 – 新手的错误.

EDIT3:使用快速计时器

zdgv.Rows(zdgv.SelectedRows(a).Index).Cells(0).Value.ToString

它显示正确的值(正确的值,没有抛出错误)=“1”.

这段代码就像我身边的魅力一样.

你忘记了MyCollection上的新内容吗?

Dim zdgv = MyDataGridView
Dim MyCollection As New Collection
For a = 0 To zdgv.SelectedRows.Count - 1

    MsgBox(zdgv.Rows(zdgv.SelectedRows(a).Index).Cells(0).Value.ToString)
    Try
        MyCollection.Add(zdgv.Rows(zdgv.SelectedRows(a).Index).Cells(0).Value.ToString)
    Catch ex As Exception
        MsgBox(ex.Message)
        If ex.InnerException IsNot Nothing Then
            MsgBox(ex.InnerException)
        End If
    End Try
Next
网友评论