C# 如何在运行时创建的控件上添加事件
我想在按钮上创建单击事件(运行时创建了两个按钮) 我正在使用它创建按钮:C# 如何在运行时创建的控件上添加事件,c#,.net,events,C#,.net,Events,我想在按钮上创建单击事件(运行时创建了两个按钮) 我正在使用它创建按钮: private void Form1_Load(object sender, EventArgs e) { for (int k = 0; k < 2; k++) { Button Btn = new Button(); Btn.Name = "btn" + k; Btn.Location = new System.Drawing.Point(20 +
private void Form1_Load(object sender, EventArgs e)
{
for (int k = 0; k < 2; k++)
{
Button Btn = new Button();
Btn.Name = "btn" + k;
Btn.Location = new System.Drawing.Point(20 + (k *110), 60 + (20 * j) * 2);
Btn.Size = new System.Drawing.Size(90, 30);
if (k == 0)
Btn.Text = "Back";
else
Btn.Text = "Calculate";
this.Controls.Add(Btn);
}
}
private void Form1\u加载(对象发送方,事件参数e)
{
对于(int k=0;k<2;k++)
{
按钮Btn=新按钮();
Btn.Name=“Btn”+k;
Btn.位置=新系统图纸点(20+(k*110),60+(20*j)*2);
Btn.尺寸=新系统图纸尺寸(90,30);
如果(k==0)
Btn.Text=“后退”;
其他的
Btn.Text=“计算”;
this.Controls.Add(Btn);
}
}
提前感谢。只需使用:
Btn.Click += button1_Click;
private void button1_Click(object sender, EventArgs e)
{
}
只需使用:
Btn.Click += button1_Click;
private void button1_Click(object sender, EventArgs e)
{
}
像这样
btn1.Click += new EventHandler(this.btn1_Click);
像这样
btn1.Click += new EventHandler(this.btn1_Click);
在VS中,您可以键入Btn。单击+=
按tab键两次,它将为您生成方法
在VS中,您可以键入
Btn。单击+=
按tab键两次,它将为您生成方法。如下所示增强循环:
for (int k = 0; k < 2; k++)
{
Button Btn = new Button();
Btn.Name = "btn" + k;
Btn.Location = new System.Drawing.Point(20 + (k *110), 60 + (20 * j) * 2);
Btn.Size = new System.Drawing.Size(90, 30);
if (k == 0)
Btn.Text = "Back";
else
Btn.Text = "Calculate";
Btn.Click += button_Click; // <-- This is where it happens!
this.Controls.Add(Btn);
}
请注意,在事件处理程序中,您需要通过查看
Name
属性来确定按下了哪个按钮。增强循环,如下所示:
for (int k = 0; k < 2; k++)
{
Button Btn = new Button();
Btn.Name = "btn" + k;
Btn.Location = new System.Drawing.Point(20 + (k *110), 60 + (20 * j) * 2);
Btn.Size = new System.Drawing.Size(90, 30);
if (k == 0)
Btn.Text = "Back";
else
Btn.Text = "Calculate";
Btn.Click += button_Click; // <-- This is where it happens!
this.Controls.Add(Btn);
}
请注意,在事件处理程序中,您需要通过查看
Name
属性来确定按下了哪个按钮。它表示当前上下文中不存在名称“Btn”
@UzairAli,它应该在for循环中。就在this.Controls.Add(Btn)之前代码>行其工作,但问题是两个按钮使用相同的事件(返回并计算)@UzairAli看到我的答案,我演示如何区分两个按钮。@UzairAli要么照他说的做,然后检查按钮名称,或者,您需要为每个按钮使用一个新方法,这意味着您可以使用动态forit,它表示当前上下文中不存在名称“Btn”
@UzairAli,它应该在for循环中。就在this.Controls.Add(Btn)之前代码>行其工作,但问题是两个按钮使用相同的事件(返回并计算)@UzairAli看到我的答案,我演示如何区分两个按钮。@UzairAli要么照他说的做并检查按钮名称,要么你需要为每个按钮使用一个新方法,这意味着你可以使用一个动态按钮,这正是我想要的:)谢谢没有问题;-)顺便说一句,“这就是我想要的”的意思是把我的答案标记为已接受:-)这就是我想要的:-)谢谢没有问题;-)顺便说一句,“这就是我想要的”的意思是将我的答案标记为已接受:-)