我有这个代码,它从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("");
}
有什么想法吗?
答案 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("");
}
}