如果列包含特定文本/字符串,则隐藏行

时间:2015-08-31 11:02:40

标签: vb.net datagridview hide

我有一个datagridview,我也没有绑定的数据源我在datagridview中也有一个按钮和三行。如果我的名为STATUS的列包含单词CLOSED我想隐藏整行,但我不想删除它只是隐藏它。

如果有人喜欢知道我在使用VB.net

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果您正在使用绑定数据源,则需要捕获DataGridView.DataSourceChanged事件。

看起来像这样。

Private Sub DataGridView1_DataSourceChanged(sender As Object, e As System.EventArgs) Handles DataGridView1.DataSourceChanged

    For Each row As DataGridViewRow In DirectCast(sender, DataGridView).Rows

        If row.Cells("status").Value.ToString.ToLower.Contains("Closed") Then

            row.Visible = False

        End If

    Next


End Sub

如果您没有使用数据源,则需要捕获DataGridView.RowsAdded事件。

看起来像这样。

Private Sub DataGridView1_RowsAdded(sender As Object, e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded

    Dim dg As DataGridView = sender

    If dg.Columns.Count > 0 And e.RowIndex <> 0 Then

        Dim theRow As DataGridViewRow = dg.Rows(e.RowIndex)

        If theRow.Cells("status").Value.ToString.ToLower.Contains("closed") Then

            theRow.Visible = False

        End If

    End If

End Sub