繁体   English   中英

如何在不更改行的情况下查看DataGridView更改

[英]How to see DataGridView changes without changing row

我有一个带有一些DataGridViewComboBoxColumn的DataGridView。 列的DataSource设置为显示某些值可供选择,但DataGridView本身没有将DataSource设置为任何值。 我手动加载/保存它的值。

问题:当我更改其中一个组合框值时,我没有看到更改,直到我移动到另一行。

更多背景信息:应用程序的主要目的是将数据从一个表移动到另一个表。 在一列中选择表的源字段,在下一列中选择另一个表中的目标字段。 该应用程序的一个功能是,当您单击行标题单元格时,它将显示您在该行中选择的源字段中的不同值列表。 但是,在更新源字段时,通过单击行标题单元格直到我先将行保留为止后才能获得正确的结果。

问题:什么是让我的更改立即生效而不必先排除行的最简单方法? 我为一个复选框列实现了一些功能,但我提出的解决方案不适用于组合框列。 我想要一些适合一切的东西。

谢谢!

编辑:如果你有兴趣阅读这篇文章并自己思考“这是一个糟糕的问题”,你介意让我知道为什么吗? 我真的不介意你是否投票...我只想了解问题是否与这个“糟糕的问题”有关,或者你认为我要求做一些你相信的事情不聪明,是一个不好的做法。

我推断你希望值一旦被选中就提交,所以这可能有助于实现这一目标。 订阅CurrentCellDirtyStateChanged并查看它是否符合您的意图。

void dataGridView1_CurrentCellDirtyStateChanged(object sender,
    EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

尝试使用以下功能:

dataGridView.RefreshEdit();

您在搜索CellValidated活动吗? 您可以在此事件中手动保存数据。

暂无
暂无

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

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