需要将多个控件还原为以前的值

时间:2014-07-30 00:24:11

标签: vb.net controls undo

我有以下情况,我在表单上有多个控件。用户可以选择编辑模式,允许他们修改控件的内容(文本框,复选框,组合框等)。编辑完成后,用户可以选择保存或取消按钮。

显然点击“保存”会保存对数据库的所有更改,但是,如果用户点击取消,我想以某种方式'将所有控件恢复到之前的状态。

目前,当用户点击取消时,表单将关闭编辑模式,但控件将保留所有更改,直到他们重新加载表单。

是否有一种简单的解决方法,或者每次用户点击取消时是否需要从数据库重新加载整个表单内容?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我将在此概述一个可能的解决方案。

您可以在表单中使用字典,只要用户首次修改控件的内容,就可以通过控件名称对控件的内容进行索引。

当用户开始修改控件时,检查控件是否已存在于字典中。如果它没有用字母控件的当前值向字典添加新条目。

如果用户取消编辑过程,您可以遍历字典,通过名称(Form.Controls(ControlName)或类似的东西)找到​​表单中的每个控件,将其值设置回原来的值,从字典中删除条目。

它不是最优雅的解决方案,因为它会将您的所有控件链接到TextChanged事件或等效项,以便在修改后捕获它们的值...

为了避免这种情况,您可以在加载表单时在开头填写字典,填充数据库中的值,然后只设置这些控件'值返回,当用户取消时具有不同的值。