繁体   English   中英

Datagridview:如何提交复选框并立即对其进行过滤?

[英]Datagridview: how to commit checkbox and and immediately filter by it?

我有一个绑定到DataTable1BindingSource的datagridview DataGridView1,唯一可写的单元格是绑定到布尔列“ 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

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

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

找到了原因。

Sender.EndEdit

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

DataTable1BindingSource.EndEdit

然后一切都按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM