Datagridview:如何提交复选框并立即过滤它?

时间:2017-08-20 19:53:09

标签: c# vb.net datagridview

我有一个datagridview DataGridView1,绑定到DataTable1BindingSource,唯一可写单元格是绑定到布尔列的复选框" IsSelected"。一旦用户选中该复选框,我只想显示选中复选框的行。所以我把以下代码:

Private Sub DataGridView1_CurrentCellDirtyStateChanged(sender As Object, e As EventArgs) Handles DataGridView1.CurrentCellDirtyStateChanged
    DataGridView1.EndEdit()
    DataTable1BindingSource.Filter = "IsSelected"
End Sub

但它不起作用 - 一旦检查了ckeckbox,datagridview根本不会显示任何行。

如果我移动语句DataTable1BindingSource.Filter =" IsSelected"单独的命令按钮,

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    DataTable1BindingSource.Filter = "IsSelected"
End Sub

然后在编辑复选框然后单击按钮时,它按预期工作,即仅显示此行。

为什么它在立即发布时不起作用?

1 个答案:

答案 0 :(得分:1)

找到原因。之后

Sender.EndEdit

,在应用过滤器之前,还必须发出

DataTable1BindingSource.EndEdit

然后一切按预期工作。