我有一个 VisualStudio 生成的数据集。
我将它们连接到 DataGridView(由 VisualStudio 连接的宽度)。
我正在使用过滤器。例如:
xyBindingSource.Filter = "yx = 'tart'";
我的问题:
如果我更改 yx 列的任何值(从 tart 更改为其他任何值),更改的行将在 CellEndEdit 事件运行之前删除。
在 CellEndEdit 事件中,DataGridViewCellEventArgs 将包含正确的行号和列号。
但是事件 args 所指向的行并不是被编辑的,因为选择的行被更早地删除了。
我能做些什么?
感谢帮助:
诺比
问问题
262 次
1 回答
0
您可以使用DataGridView.CurrentCellDirtyStateChanged
事件来处理这个问题。DataGridView.CellValueChanged
如果您这样做,这可以引发事件:
void dataGridView1_CurrentCellDirtyStateChanged(object sender,
EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
CommitEdit
手动引发DataGridView.CellValueChanged
事件。您可以Filter
再次在此事件中重新加载您的方法。试试看。
于 2012-08-31T08:23:10.230 回答