我该如何检查winform上的所有控件,以确保在更改内容';s显示

本文关键字:确保 显示 控件 何检查 检查 winform | 更新日期: 2023-09-27 17:59:11

技术: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布尔变量。如果这是真的,那么它会要求用户在继续之前提交更改。如果他们单击"是",那么它会将数据提交到数据库中。

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

我该如何检查winform上的所有控件,以确保在更改内容';s显示

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

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

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