2

随着表单/对话框底部的“确定”和“取消”按钮的普遍存在,我很奇怪我似乎无法找到保存控制状态的“标准”方式。

例如,我有一个选中的过滤器列表框。当用户单击“确定”按钮时,它将过滤器应用于数据集并关闭表单。如果用户单击取消按钮,表单将撤消所有选中项的更改并关闭表单。

在理想情况下,当用户单击“确定”按钮时,保存的控件状态将被当前控件状态覆盖并设置新状态标志。当窗体正在关闭时,如果设置了新状态标志,则窗体将重置该标志,如果未设置,则窗体将显示的控件替换为保存的控件状态。这样,如果点击取消按钮,用户所做的所有检查更改都会被重置。

处理取消按钮以撤消对控件甚至整个表单的更改的最佳实践方法是什么?有最佳实践解决方案吗?我可以看到这对于文本框、单选按钮、复选框和几乎每个控件都是必需的,因此请尽量保持其通用性,而不是特定于选中的列表框。

4

2 回答 2

5

我建议它很简单:

  • 将 UI 中反映的数据与 UI 本身分开
  • 加载表单时,根据数据设置其内容
  • 当用户单击确定时,保存对数据模型的更改(无论如何实现,这将取决于您如何填充模型)
  • 当用户单击取消时,保存任何更改

无需“撤消”取消上的更改 - 您只需丢弃表单。当您接下来要显示表单时,将加载与以前相同的数据,因为您没有保存对它的任何更改。

于 2012-05-30T18:19:40.160 回答
0

最简单的方法:不要重复使用表单实例。var childForm = new MyChildForm();在每个之前做childForm.Show();

于 2012-05-30T18:19:25.580 回答