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

问题描述

| 技术:C#、. Net,Winforms 我有一个主要形式,可以从数据库中提取数据,并填充许多不同的控件。标签,文本框,DataRepeaters,DataGridView和选项卡也填充了这些类型的控件。 但是,数据也以这样的方式被拉出:通过BindingNavigator在此表单上有多个“记录”。 由于代码的结构,我无法轻松地在正在验证的任何控件上调用DataAdaptor.update()(使用与之关联的DataTable),所以我将使用提交按钮代替。 我想知道的是“如何检查所有控件以查看它们是否已被编辑?” 我正在使用绑定的导航器按钮作为\“ FindEditedControls()\”的触发器 当前解决方案:
DataTable dt = db.GetTable();
dt.RowChanged += new DataRowChangeEventHandler(dtUpdated);

private void dtUpdated(object sender,DataRowChangeEventArgs e)
{
    needsCommit = true;
}
该按钮仅检查needsCommit布尔变量。如果为true,则要求用户先提交更改,然后再继续。如果他们单击\“是\”,则它将数据提交到数据库。 如果这是您得到的,我想谢谢您。这与DataGridViews配合得很好。现在使用标准表单控件进行测试。     

解决方法

        参加
DataTable.RowChanged
事件。触发时,您的控件之一已被编辑。 然后,可以检查ѭ​​2ѭ属性中要绑定的行的
DataRowState.Modified
值。     ,        从与其绑定的数据中为每个控件分配一个签名,然后使用控件的值检查该签名。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...