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

C# 如何在不更改行的情况下查看DataGridView更改,c#,.net,datagridview,C#,.net,Datagridview,我有一个DataGridView和一些DataGridViewComboBoxColumn。这些列设置了它们的数据源,这样它们将显示某些可供选择的值,但是DataGridView本身没有将其数据源设置为任何值。我手动加载/保存其中的值 问题是:当我更改其中一个combobox值时,在移动到另一行之前,我看不到更改 更多背景信息:该应用程序的主要目的是将数据从一个表移动到另一个表。在一列中选择表的源字段,在下一列中选择另一个表的目标字段。该应用程序的一个功能是,当您单击行标题单元格时,它将显示一个

我有一个DataGridView和一些DataGridViewComboBoxColumn。这些列设置了它们的数据源,这样它们将显示某些可供选择的值,但是DataGridView本身没有将其数据源设置为任何值。我手动加载/保存其中的值

问题是:当我更改其中一个combobox值时,在移动到另一行之前,我看不到更改

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

问题:让我的更改立即生效而不必先离开行的最简单方法是什么?我曾经为复选框列实现了一些功能,但我提出的解决方案对组合框列不起作用。我想要什么都能用的

谢谢


编辑:如果你读到这篇文章,心里想“这是个糟糕的问题”,你介意告诉我为什么吗?我真的不介意你投反对票。。。我只想了解问题是否与这是一个“糟糕的SO问题”有关,或者你认为我要求做一些你认为不明智且不值得遵循的事情。

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

我推断您希望在选择值后立即提交该值,因此这可能有助于实现这一点。订阅
CurrentCellDirtyStateChanged
,看看它是否实现了您想要的功能

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

尝试使用以下功能:

dataGridView.RefreshEdit();

可能地我会试试看,很快会告诉你的。该事件在离开行时激发。我希望它在我更改值时立即更新。太好了!谢谢你,我知道这必须很简单。呃。。。那个否决这个问题的人能解释一下原因吗?换句话说,真的有帮助吗?不知道。看起来还可以,虽然更好的问题往往有简洁的代码和较少的英语。向上投票。@RitchMelton你喜欢我用西班牙语写的吗?:)不过,说真的,我并不清楚,我很快就得到了我想要的确切答案,根本不需要澄清任何事情。所以我认为这个问题写得很好。不,正如前面提到的,我更喜欢一段代码而不是一段文字。我认为改进的必要性体现在以下事实上:我对你的问题投了赞成票,而你的问题在那次投票中得分为负面,以及以“我推断……”开头的答案。@Brandon删除我的反对票很有诱惑力,但权力越大,责任越大。