gpt4 book ai didi

c# - Windows 窗体,启用禁用控件取决于

转载 作者:太空狗 更新时间:2023-10-30 01:25:31 24 4
gpt4 key购买 nike

有人知道根据上下文启用/禁用表单控件的正确方法吗?问题是,我的表单上有大约 50 个控件,它们的状态应该取决于某些列表中选择的项目、选中的复选框以及数据库中的某些数据是否存在。

相当粗略的例子是当你有一个多选 TreeView 和一个像“比较”这样的按钮时。只有当您在 TreeView 中选择的节点都是同类时,才应启用此按钮。此外,一个附加要求是,仅当您选择了 2 个节点时才应启用此功能。还有一点,并非每个类都可以进行比较,因此对于您应该选择什么才能进行比较也存在限制。

问题不在于 Control.Enabled = true/false。问题是关于通用方法。

谢谢。

最佳答案

在 WPF 中,有一种叫做可视化状态管理器的东西。您可以在 WinForms 中实现类似的东西。基本上你的表单可以有状态,并且控制修改应该只允许在状态中进行。然后你调用一个转换来改变状态。至少所有的修改代码都可以存储在状态管理器调用的某个地方的方法中。

http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-visual-state-manager-overview.aspx

我认为在 WPF 中有某种设计器支持。在 WinForms 中可能会遵循类似于本地化在表单上的工作方式,但它涉及到。

我为一个项目做了一个粗略的状态管理器,该项目采用字符串状态名称列表和相应的调用方法委托(delegate),然后将所有修改代码保留在方法中而不是对表单进行修饰是一种很好的做法。

关于c# - Windows 窗体,启用禁用控件取决于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759850/

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