3
private void createButton()
{
    flowLayoutPanel1.Controls.Clear();

    for (int i = 0; i < 4; i++)
    {    
        Button b = new Button();
        b.Name = i.ToString();
        b.Text = "Button" + i.ToString();
        flowLayoutPanel1.Controls.Add(b);
    }

}
private void button1_Click(object sender, EventArgs e)
{
    createButton();
}

我使用此代码在运行时创建了一些按钮,现在我如何使用这些创建的按钮来执行不同的操作?我对此很陌生,所以请帮助我,非常感谢:)

4

3 回答 3

8

您可以为 click 事件分配事件处理程序:

b.Click += SomeMethod;

SomeMethod必须有以下签名:

void SomeMethod(object sender, EventArgs e)
于 2013-04-18T13:39:40.063 回答
1

创建按钮时,您需要Click像这样订阅事件:

Button b = new Button();
b.Click += new EventHandler(b_Click);
// or
b.Click += b_Click;
// or
b.Click += delegate(object sender, EventArgs e) {/* any action */});
// or
b.Click += (s, e) => { /* any action */ };

void b_Click(object sender, EventArgs e)
{
    // any action
}

当您是 Visual Studio 中的设计者并单击按钮创建方法时,这是自动完成的button1_Click
您可以在表单的 Designer.cs 中搜索,您会找到等效的一行:

button1.Click += new EventHandler(button1_Click);

相关问题:

于 2013-04-18T13:40:53.870 回答
1
b.Click += delegate(object sender, EventArgs e) {
   Button clickedButton = (Button)sender; //gets the clicked button
});
于 2013-04-18T13:41:49.247 回答