【问题标题】:How can I remove the previous Buttons after clicking on another one?单击另一个按钮后如何删除以前的按钮?
【发布时间】:2020-04-29 19:22:49
【问题描述】:

我正在开发一个需要大量按钮的项目。但我需要一些按钮来删除以前的按钮。例如,当我单击阶段 1 中的第一个按钮时,我希望它删除自己和阶段 1 中的另一个按钮,同时显示阶段 2 中的按钮。除了我的实际项目之外,我正在尝试这个,因为我已经尝试过使用队列、列表和元组。

我该怎么做?看起来很简单,但实现这一点确实很复杂。代码编译,当我单击一个按钮时,其他按钮会显示出来,但我无法删除它们或使它们不可见。我怎样才能做到这一点?提前致谢!

//Creates buttons on stage one

        for (int i = 0; i < 2; i++)
        {
            Button button = new Button();
            button.Location = new Point(20, 30 * i + 10);
            button.Visible = true;
            button.Text = "stage1";

            switch (i)
            {
                case 0:
                    button.Click += new EventHandler(ButtonClick);
                    break;
                case 1:
                    button.Click += new EventHandler(ButtonClick2);
                    break;
            }

            this.Controls.Add(button);
        }
    }

    void ButtonClick(object sender, EventArgs e)
    {
        // First Button Clicked
        // Creates buttons on stage 2

        for (int i = 0; i < 2; i++)
        {
            Button button = new Button();
            button.Location = new Point(200, 30 * i + 10);
            button.Visible = true;
            button.Text = "stage2";

            switch (i)
            {
                case 0:
                    button.Click += new EventHandler(ButtonClick3);
                    break;
                case 1:
                    button.Click += new EventHandler(ButtonClick4);
                    break;
            }
            this.Controls.Add(button);
        }
    }
    void ButtonClick2(object sender, EventArgs e)
    {
        // Second Button Clicked
    }

    void ButtonClick3(object sender, EventArgs e)
    {
        // Third Button Clicked
    }

    void ButtonClick4(object sender, EventArgs e)
    {
        // Fourth Button Clicked
    }

【问题讨论】:

    标签: c# winforms button


    【解决方案1】:

    你必须给你的按钮一个唯一的名字:

    button.Name = "button1";
    

    然后您可以稍后删除它们:

    this.Controls.Remove((Button)Controls["button1"]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      相关资源
      最近更新 更多