使用按钮控制命令的顺序

本文关键字:顺序 命令 控制 按钮 | 更新日期: 2023-09-27 18:06:16

在Windows的形式,我有Button1, Button2Button3。这些按钮代表了一系列应该按照从开始操作到结束操作的顺序执行的操作。所以通常我可以这样处理

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,上述方法是可以接受的吗?

使用按钮控制命令的顺序

为了扩展Bjarke所说的内容,我提供了一个代码示例。

Form1: Form
{
    List<Button> listButtons = new List<Button>();
    public void EnableButton(Button btnToEnable)
    {
        foreach(Button btn in listButtons)
        {
            //check button name.
            //if it is the button to enable, enable it, if not then disable it
            btn.Enabled = btn.Name == btnToEnable.Name;
        }
    }
    Form_Load(Object sender, event Args e)
    {
        listButtons.Add(Button1);
        listButtons.Add(Button2);
        listButtons.Add(Button3);
        EnableButton(Button1);
        //Button1.Enabled = true;
        //Button2.Enabled = false;
        //Button3.Enabled = false;
    }

    Button1_click(Object sender, event Args e)
    {
        EnableButton(Button2);
        //Actions
        //Button2.Enabled = true;
        //Button1.Enabled = false;
    }
    Button2_click(Object sender, event Args e)
    {
        EnableButton(Button3);
        //Actions
        //Button3.Enabled = true;
        //Button2.Enabled = false;
    }
    Button3_click(Object sender, e)
    {
        EnableButton(Button1);
        //Actions
        //Button3.Enabled = false;
        //Button1.Enabled = true;
    }
}