Datagridview行不可见,行选择随机

时间:2017-05-03 22:28:21

标签: vb.net

我使用下面的子命令使特定的行不可见,但是当我返回到已过滤的datagridview并尝试循环显示可见的行索引时,它会从列顶部转到列的底部而不是按顺序进行(1,2,3 ...等等)。

我能够将过滤器后的当前设置设置为顶部可见行,但这并没有什么不同。

    Private Sub BR_VAL_NO_SHOW()

    Dim dgv As DataGridView = Me.dgvStockCheck_Available
    Dim cm1 As CurrencyManager = CType(BindingContext(dgv.DataSource), CurrencyManager)

    Try
        For i As Integer = 0 To dgv.Rows.Count - 1

            If IsDBNull(dgv.Rows(i).Cells("MATERIAL").Value) Then
                Exit Try
            Else

                If Not dgv.Rows(i).Cells("MATERIAL").Value = "SLAT" Then
                    dgv.CurrentCell = Nothing
                    cm1.SuspendBinding()
                    dgv.Rows(i).Visible = False
                End If
            End If

        Next
    Catch ex As Exception

    End Try

End Sub

1 个答案:

答案 0 :(得分:0)

这是完全正常的

您为当前单元格提供NOTHING

的值

但是你使用IsDBNull来验证哪个不是一回事。

  

不要在面向对象的编程中混淆 Nothing 的概念   具有DBNull对象的语言。在面向对象的编程中   language, Nothing 表示缺少对象的引用。    DBNul l代表未初始化的 不存在的数据库   列。

来源:https://msdn.microsoft.com/en-us/library/system.dbnull(v=vs.90).aspx

因此,解决方案可能只是检查是否可见。

If dgv.Rows(i).Visible = False Then
    'Not Visible
    Exit Try
Else