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

C# 无法在c中添加按钮单击事件#,c#,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.S

我有一段代码,它从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("");
}
有什么想法吗

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("");
     }
}

你说不工作是什么意思?
button1
定义了吗?是的,我想是的,它出现在我的表格中已经回答了,你需要订阅buttonClicked事件。您处理事件,因此您的方法(button1\u Click)是一个eventhandler。在查看参数时,您可以很容易地识别出这一点,这些参数对于EventHandler非常常见。@Perf问题是您没有共享所有代码,或者您没有事件处理的概念butten是一个UserControl项,所以我应该在UserControl中更改它吗?