【发布时间】:2016-02-17 21:08:49
【问题描述】:
我用 C# 开发了一个 winform 应用程序。我想在按钮单击时动态生成按钮,我们将其命名为“添加”。随机单击任何按钮,然后单击删除按钮,应删除所选按钮。现在我该怎么做?
这是我的动态按钮生成代码
public void AddNewButton()
{
System.Windows.Forms.Button();
Btn = new Button();
this.Controls.Add(Btn);
Btn.Name = textBox_code.Text + count;
Btn.Location = new Point(50, 50);
Btn.Text = textBox_code.Text;
Btn.BackColor = Color.Red;
Btn.ForeColor = Color.Blue;
Btn.Click += new EventHandler(this.button_Click);
count = count + 1;
label1.Text = count.ToString();
Btn.MouseDown += new MouseEventHandler(textbox_MouseDown);
Btn.MouseMove += new MouseEventHandler(textbox_MouseMove);
Btn.MouseUp += new MouseEventHandler(textbox_MouseUp);
}
用于删除按钮
private void button_delete_Click(object sender, EventArgs e)
{
this.Controls.Remove(Btn);
count = count - 1;
label1.Text = count.ToString();
}
上面的代码只删除最后添加的按钮,而不是任何随机选择的按钮
【问题讨论】:
-
再解释一下。当你点击删除按钮时,应该删除哪个按钮?
-
您应该向 Btn.MouseClick 添加一个处理程序并将最后单击的按钮保存在一个变量中。然后你知道哪个Button被点击了,可以在button_delete_Click中删除它
-
坦率地说我不知道你的动态按钮生成代码是如何编译的
-
OP 可能在
System.Windows.Forms.Button();上犯了一个错误,我想我们可以假设它应该是System.Windows.Forms.Button Btn;
标签: c# .net winforms dynamic-controls