关于c#:如何在动态按钮上创建动态按钮单击事件?

How can I create a dynamic button click event on a dynamic button?

我正在页面上动态创建一个按钮。 现在,我想在该按钮上使用按钮单击事件。

如何在C#ASP.NET中做到这一点?


1
2
3
4
5
6
Button button = new Button();
button.Click += (s,e) => { your code; };
//button.Click += new EventHandler(button_Click);
container.Controls.Add(button);

//protected void button_Click (object sender, EventArgs e) { }


对于新手来说更简单的一种:

1
2
3
4
5
6
7
8
Button button = new Button();
button.Click += new EventHandler(button_Click);

protected void button_Click (object sender, EventArgs e)
{
    Button button = sender as Button;
    // identify which button was clicked and perform necessary actions
}


只需在创建事件处理程序时将其添加到按钮即可。

1
2
3
4
5
6
 button.Click += new EventHandler(this.button_Click);

void button_Click(object sender, System.EventArgs e)
{
//your stuff...
}

这很容易做到:

1
2
3
4
5
Button button = new Button();
button.Click += delegate
{
   // Your code
};


假设您有25个对象,并且希望一个进程处理任何一个对象的click事件。 您可以编写25个委托或使用循环来处理click事件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public form1()
{
    foreach (Panel pl  in Container.Components)
    {
        pl.Click += Panel_Click;
    }
}

private void Panel_Click(object sender, EventArgs e)
{
    // Process the panel clicks here
    int index = Panels.FindIndex(a => a == sender);
    ...
}