无法在c#中添加按钮点击事件

时间:2014-10-21 06:40:48

标签: c#

我有这个代码,它从foreach循环生成一些按钮。

Controls.Button btn = new Controls.Button();
btn.button1.Text = "Details";
btn.Location = new Point(200, cnt);
panel1.Controls.Add(btn);

当我尝试使用它之后它就无法工作。

private void button1_Click(object sender,EventArgs e)
{
    MessageBox.Show("");
}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

Controls.Button btn = new Controls.Button();
btn.ID= "ID" + counter;
btn.button1.Text = "Details";
btn.Location = new Point(200, cnt);
btn.Click += button1_Click;
panel1.Controls.Add(btn);

你应该这样写!请注意,在这种情况下,foreach方法中的所有按钮都将具有相同的Click事件处理程序。使用按钮的ID +计数器可以使它们有所不同。

private void button1_Click(object sender,EventArgs e)
{
     string id= ((Button)sender).ID;
     if(id == "value")
     {
     }
     else if(id == "another value")
     {
         MessageBox.Show("");
     }
}