如何在单击另一个按钮时删除一个按钮
本文关键字:按钮 一个 删除 单击 另一个 | 更新日期: 2023-09-27 18:11:24
这可能是相当琐碎的,但我的问题是,我需要删除两个按钮时,其中一个被点击。此时,当单击第三个按钮时,我的代码将创建这两个按钮。我想要的是让这些选项中的一个做点什么(我已经做了),一旦完成,让这些按钮再次消失。下面是创建两个按钮的代码:
private void btnRandom_Click(object sender, EventArgs e)
{
Button d = new Button();
Button c = new Button();
d.Text = "Dice";
c.Text = "Chance Card";
d.Name = "btnDice";
c.Name = "btnCC";
d.Location = new Point(btnRandom.Location.X, btnRandom.Location.Y + 30);
c.Location = new Point(btnRandom.Location.X, btnRandom.Location.Y + 60);
d.Click += new EventHandler(d_Click);
c.Click += new EventHandler(c_Click);
this.Controls.Add(d);
this.Controls.Add(c);
}
下面是我删除这个按钮的失败尝试
private void d_Click(object sender, EventArgs e)
{
this.Controls.Remove(btnDice); // This doesnt work
}
我猜你的代码是OK的,但是你需要在删除控件后重新绘制表单。
this.Controls.Remove(btnDice);
this.Refresh();
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.refresh.aspx 您可以使用
禁用按钮this.btnDice.Enabled = false;
或者你可以使用可见属性来隐藏它例如
this.btnDice.Visible = false;
删除您可能需要刷新表单
为什么不直接让按钮消失然后重新出现呢?
//Make the button disappear
this.btnDice.Visible = false;
//Make the button reappear
this.btnDice.Visible = true;
您可以尝试删除sender
:
private void d_Click(object sender, EventArgs e)
{
this.Controls.Remove((Button)(sender));
this.Refresh();
}