C# WinForm DataGridView 过滤器暂停

Posted

技术标签:

【中文标题】C# WinForm DataGridView 过滤器暂停【英文标题】:C# WinForm DataGridView Filter pause 【发布时间】:2012-08-31 07:21:23 【问题描述】:

我有一个 VisualStudio 生成的数据集。 我将它们连接到 DataGridView(由 VisualStudio 连接的宽度)。 我正在使用过滤器。例如:xyBindingSource.Filter = "yx = 'tart'"; 我的问题: 如果我更改 yx 列的任何值(从 tart 更改为其他任何值),更改的行将在 CellEndEdit 事件运行之前删除。 在 CellEndEdit 事件中,DataGridViewCellEventArgs 将包含正确的行号和列号。 但是事件 args 指向的行不是那个,被编辑的行,因为选择的行被更早地删除了。 我该怎么办? 感谢您的帮助: 诺比

【问题讨论】:

【参考方案1】:

您可以使用DataGridView.CurrentCellDirtyStateChanged 事件来处理此问题。这可以引发DataGridView.CellValueChanged 事件,如果你这样做:

void dataGridView1_CurrentCellDirtyStateChanged(object sender,
    EventArgs e)

    if (dataGridView1.IsCurrentCellDirty)
    
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    

CommitEdit 手动引发 DataGridView.CellValueChanged 事件。您可以再次在此事件中重新加载您的 Filter 方法。试试看吧。

【讨论】:

以上是关于C# WinForm DataGridView 过滤器暂停的主要内容,如果未能解决你的问题,请参考以下文章

C# winform datagridview如何计算统计

C# winform dataGridView批量数据修改

c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决

c# winform datagridview怎么能达到如图的效果

winform c# Datagridview 选中行 急!!!

C# winform 如何用datagridview增、删、改数据