0

这可能很简单,但我的问题是我需要在单击其中一个按钮时删除两个按钮。目前,我的代码将在单击第三个按钮时创建这两个按钮。我想要的是这些选项之一做某事(我已经做过),一旦完成,让这些按钮再次消失。下面是创建两个按钮的代码:

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
}
4

4 回答 4

2

我猜你的代码没问题,但你需要在删除控件后重新绘制表单。

this.Controls.Remove(btnDice);
this.Refresh();

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.refresh.aspx

于 2013-04-29T11:52:46.313 回答
1

您可以使用禁用按钮

this.btnDice.Enabled = false;

或者您可以使用可见属性来隐藏它,例如

this.btnDice.Visible = false;

删除 您可能需要刷新表单。

于 2013-04-29T11:52:44.487 回答
0

您可以通过删除sender

private void d_Click(object sender, EventArgs e)
{ 
    this.Controls.Remove((Button)(sender));
    this.Refresh();
}
于 2013-04-29T11:56:12.610 回答
0

你为什么不让按钮消失并再次出现?

//Make the button disappear
this.btnDice.Visible = false;

//Make the button reappear
this.btnDice.Visible = true;
于 2013-04-29T11:59:26.330 回答