【发布时间】:2014-06-03 09:47:48
【问题描述】:
在 Windows 窗体中,我有 Button1、Button2 和 Button3。这些按钮代表应按从开始操作到最终操作的顺序执行的一系列操作。所以通常我可以按如下方式处理。
Form1: Form
{
Form_Load(Object sender, event Args e)
{
Button1.Enabled = true;
Button2.Enabled = false;
Button3.Enabled = false;
}
Button1_click(Object sender, event Args e)
{
//Actions
Button2.Enabled = true;
Button1.Enabled = false;
}
Button2_click(Object sender, event Args e)
{
//Actions
Button3.Enabled = true;
Button2.Enabled = false;
}
Button3_click(Object sender, e)
{
//Actions
Button3.Enabled = false;
Button1.Enabled = true;
}
}
在几个地方我都是这样做的。这是标准方式吗?
编辑:
而且在一个简单的情况下,比如你应该在点击button2之前点击button1,上述方法是否可以接受?
【问题讨论】:
-
制作按钮列表,将所有按钮添加到集合中,创建一个将所有按钮的“启用”属性设置为 false 的方法,并设置特定按钮(基于引用或简单的索引)启用为真。小菜一碟。如果你想扩展它,你可能想使用泛型来处理其中的一些,但对于这种情况,它是不必要的。
-
“标准”不适用。取决于您在做什么以及为什么要将这种僵化的行为强加给用户。你在做什么很好。您可以按照@BjarkeSøgaard 的建议重构它,但可能不值得这么麻烦。
-
我认为您的方法没有问题,除非您还需要允许用户返回..
-
我同意@DonBoitnott。没有“标准”的方式来做这种行为。有无穷无尽的可能性最终得到相同的结果。作为一个想法,我会将操作代码移动到自己的方法中,然后我会调用它来代替
//Actions。
标签: c# .net winforms window command