我正在使用C#窗体表格并需要一些帮助。我有一个按钮,可以创建其他按钮,并将它们添加到列表'按钮'。我需要让每个按钮在点击时自行销毁。
//create new button
Button newButton = new Button();
newButton.Name = "aButt"+buttNum;
Debug.WriteLine(newButton.Name);
buttNum++;
newButton.Text = "Button!";
newButton.Height = 50;
newButton.Width = 50;
//controls where the new button gets placed
if (curX > 9)
{
curX = 0;
curY++;
//defines the point the button spawns
newButton.Location = new System.Drawing.Point((curX * 55)+10, curY * 55);
//increments X to avoid placing a button on top of another
curX++;
}
else
{
newButton.Location = new System.Drawing.Point((curX * 55) + 10, curY * 55);
curX++;
}
newButton.UseVisualStyleBackColor = true;
newButton.Click += new System.EventHandler(this.removeThisButton);
buttons.Add(newButton);
this.Controls.Add(newButton);
我设置了事件监听器,但由于发送者没有关于按钮本身的实际信息,我不知道如何摆脱它。
任何帮助表示赞赏!
答案 0 :(得分:2)
click事件处理程序具有签名
private void myButton_Click(object sender, EventArgs e)
object sender
是事件的来源。只需将其转换为Button
,就可以点击:
Button whatWasClicked = sender as Button;
if(whatWasClicked == null)
// never mind -- it wasn't a button...
答案 1 :(得分:0)
发件人是按钮。您可以将它从Form的控件集中删除,如下所示:
private void removeThisButton(object sender, EventArgs e) {
this.Controls.Remove(sender);
}