0

这是我的 DataGridView 的 SelectionChanged 事件中的代码:

 Dim a as Integer
 a = DataGridView1.CurrentRow.Index 'this certain line contains the error
 TextBox1.Text = DataGridView1.Item(0,a).Value
 'and all that jazz

代码运行,但是当单击单元格后跟任何列标题时,会显示错误。

我尝试将此代码块放在另一个名为 CellContentClick 的事件中,但与 SelectionChanged 相比,单击 datagridview 中的单元格的响应速度不快。

有想法该怎么解决这个吗?

4

2 回答 2

2

DataGridView 或 DataGridView1.CurrentRow 为空...

为了避免错误,您可以在尝试访问它们之前简单地确保它们不为空:

Dim a as Integer = 0
If DataGridView1 IsNot Nothing AndAlso DataGridView1.CurrentRow IsNot Nothing Then 
 a = DataGridView1.CurrentRow.Index 'this certain line contains the error
EndIf
于 2013-09-08T08:59:49.253 回答
0

好的 - 我知道这是一篇旧帖子,但我阅读了上面的内容并想出了这段代码,所以我想我会分享它。

  Private Function TryReturnString(ByRef obj As Object) As String
    Dim rtn As String = String.Empty
    If obj IsNot Nothing Then
      rtn = obj.ToString
    End If
    Return rtn
  End Function

或以上:

  Private Function TryReturnIndex(ByRef curRow As DataGridViewRow) As Integer
    Dim rtn As Integer = 0
    If curRow IsNot Nothing Then
      rtn = curRow.Index
    End If
    Return rtn
  End Function
于 2016-09-21T18:33:36.237 回答