繁体   English   中英

在更改显示的内容之前,如何检查 winform 上的所有控件以确保它们都没有被编辑?

[英]How would I check all the controls on a winform to make sure none of them have been edited before changing what's displayed?

技术:C#、.Net、Winforms

我有一个从数据库中提取数据并填充许多不同控件的主窗体。 标签、文本框、DataRepeaters、DataGridViews 和选项卡也填充了这些类型的控件。

但是,数据也以这样一种方式被提取,即在此表单上有多个“记录”由 BindingNavigator 导航。

由于我的代码结构,我不能轻易地在任何正在验证的控件上调用 DataAdaptor.update() (使用它的关联 DataTable),所以我只使用提交按钮。

我想知道的是“如何检查所有控件以查看它们是否已被编辑?”

我正在使用绑定导航器按钮作为“FindEditedControls()”的触发器

当前解决方案:

DataTable dt = db.GetTable();
dt.RowChanged += new DataRowChangeEventHandler(dtUpdated);

private void dtUpdated(object sender, DataRowChangeEventArgs e)
{
    needsCommit = true;
}

按钮只检查 needsCommit boolean 变量。 如果是真的,那么它会要求用户在继续之前提交更改。 如果他们单击“是”,则它将数据提交到数据库。

如果这是你得到的,我要感谢你。 这与 DataGridViews 配合得非常好。 现在使用标准表单控件对其进行测试。

连接到DataTable.RowChanged事件。 当它触发时,您的一个控件已被编辑。

然后,您可以检查DataRow.RowState属性以获取要绑定到的行的DataRowState.Modified值。

从绑定到它的数据中为每个控件分配一个签名,然后使用控件的值检查该签名。

暂无
暂无

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

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