根据其他控件的状态启用/禁用控件的最简单方法是什么?

时间:2014-12-25 06:31:17

标签: c# winforms event-handling

我在修补C#Windows应用程序。我有一个按钮,当附近的列表框中没有选择任何内容时,或者当从某个文本框中删除所有文本时,我想要禁用该按钮。当然必须采取相反的促成行动。此外,当选项卡显示,当前加载的数据更改时,必须执行这些启用/禁用操作,依此类推。 我发现编写MyButton.Enabled = (currentproject != null) && (MyTextBox.Text != String.Empty) & (MyListBox.SelectedIndex > -1)非常容易,但如果我必须在MyListBox_SelectionChanged,MyTextBox_ TextChanged以及其他一些地方重复编写它,我认为有问题。是否有按钮的属性,我可以放置该代码,让按钮自己观看?

1 个答案:

答案 0 :(得分:0)

某些地方需要对按钮状态所依赖的属性的更改作出反应。因此,您所描述的代码必须以某种方式存在某处

也就是说,与任何其他代码一样,可以重用特定的逻辑。你不需要在多个地方重写表达式。相反,将它放在某个方法中,然后从状态依赖于更改的属性调用的各种事件处理程序中调用该方法。

另一种方法是定义一个本身表示按钮状态的属性,然后使用数据绑定将按钮的状态绑定到该属性。在顶层,这可能会更清洁。但恕我直言,它并没有太大的改进,因为您仍然需要订阅各种属性更改事件才能正确更新该新属性。即你还在做同样的基本事情。在这种情况下,它被抽象了一点。