C#如何为动态创建的控件定义事件?
我编写了一个动态创建按钮的代码。代码运行良好,在我单击按钮时创建控件。现在,下一个任务是,我想为这些动态创建的控件定义单击事件。我该怎么做?下面是代码,请修改此代码并粘贴在回复中,以便于我理解C#如何为动态创建的控件定义事件?,c#,events,dynamic,controls,C#,Events,Dynamic,Controls,我编写了一个动态创建按钮的代码。代码运行良好,在我单击按钮时创建控件。现在,下一个任务是,我想为这些动态创建的控件定义单击事件。我该怎么做?下面是代码,请修改此代码并粘贴在回复中,以便于我理解 public partial class Form1 : Form { public Form1() { InitializeComponent(); } // create controls dynamically on form int n =
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// create controls dynamically on form
int n = 4;
private void btnDisplay_Click_1(object sender, EventArgs e)
{
Button[] button = new Button[n];
int previousButtonPositionY;
int previousButtonHeight;
for (int i = 0; i < n; i++)
{
button[i] = new Button();
button[i].Name = "btnButton" + i;
button[i].Text = "btnButton" + i;
if (i > 0)
{
previousButtonPositionY = button[i - 1].Location.Y;
previousButtonHeight = button[i - 1].Height;
}
else
{
previousButtonPositionY = 50;
previousButtonHeight = 0;
}
button[i].Location = new Point(0, previousButtonPositionY + previousButtonHeight);
}
for (int i = 0; i < n; i++)
{
panel1.Controls.Add(button[i]);
}
}
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
//在窗体上动态创建控件
int n=4;
私有void btnDisplay_Click_1(对象发送方,事件参数e)
{
按钮[]按钮=新按钮[n];
int先前的按钮位置;
int-previousButtonHeight;
对于(int i=0;i0)
{
previousButtonPositionY=按钮[i-1]。位置.Y;
previousButtonHeight=按钮[i-1]。高度;
}
其他的
{
以前的按钮位置=50;
previousButtonHeight=0;
}
按钮[i]。位置=新点(0,PreviousButtonPosition+previousButtonHeight);
}
对于(int i=0;i
初始化按钮后,您可以使用
button[i].Click += new EventHandler(button_Click);
更多信息:谢谢您的回复。如何在特定条件下取消订阅此事件处理程序?按钮[i]。单击-=新建事件处理程序(按钮\U单击);