如何在运行时删除按钮? [英] How delete a button at runtime ?

查看:70
本文介绍了如何在运行时删除按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

看看这个例子,我们在运行时通过单击MyExistingButton创建按钮myNewButton。

如何在创建后按另一个按钮删除myNewButton?



Look at this example we create button myNewButton at runtime by Clicking MyExistingButton .
How we can delete myNewButton by pressing another button after we created?

private void MyExistingButton_Click(object sender, EventArgs e)
    {
    Button myNewButton = new Button();
    myNewButton.Text = "ClickMe";
    myNewButton.Location = new Point((Width - myNewButton.Width) / 2, (Height - myNewButton.Height) / 2);
    myNewButton.Click += new EventHandler(myNewButton_Click);
    Controls.Add(myNewButton);
    }
void myNewButton_Click(object sender, EventArgs e)
    {
    MessageBox.Show("Hello World!");
    }

推荐答案

Control.ControlCollection(Controls属性)也有一个Remove方法,你可以使用它。

Clickety [ ^ ]
The Control.ControlCollection (Controls property) has a Remove method too which you can use.
Clickety[^]


只需将其从控件列表中删除而不实际销毁按钮对象:

Just to remove it from the controls list without actually destroying the button object:
Button myNewButton = new Button();
private void MyExistingButton_Click(object sender, EventArgs e)
{
  myNewButton.Text = "ClickMe";
  myNewButton.Location = new Point((Width - myNewButton.Width) / 2, (Height - myNewButton.Height) / 2);
  myNewButton.Click += new EventHandler(myNewButton_Click);
  Controls.Add(myNewButton);
}

void myNewButton_Click(object sender, EventArgs e)
{
  MessageBox.Show("Hello World!");
}

private void MyExistingButton2_Click(object sender, EventArgs e)
{
  if(Controls.Contains(myNewButton))
    Controls.Remove(myNewButton);
}


public Form1()
        {
            InitializeComponent();
            
        }
        Button myNewButton;

        private void MyExistingButton_Click(object sender, EventArgs e)
        {
            if (!(this.Controls.Contains(myNewButton)))
            {
                myNewButton = new Button();
                myNewButton.Text = "ClickMe";
                myNewButton.Location = new Point((Width - myNewButton.Width) / 2, (Height - myNewButton.Height) / 2);
                myNewButton.Click += new EventHandler(myNewButton_Click);
                Controls.Add(myNewButton);
            }
        }
        void myNewButton_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World!");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (this.Controls.Contains(myNewButton))
            {
                this.Controls.Remove(myNewButton);
            }
        }


这篇关于如何在运行时删除按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆