[英]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.