gpt4 book ai didi

c# - 有状态的 Winform 和取消按钮

转载 作者:行者123 更新时间:2023-12-02 22:40:38 27 4
gpt4 key购买 nike

随着窗体/对话框底部普遍存在“确定”和“取消”按钮,令我感到奇怪的是我似乎找不到一种“标准”方式来保存控件状态。

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

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

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

最佳答案

我建议它很简单:

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

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

关于c# - 有状态的 Winform 和取消按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10821971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com