您好我创建了一段这样的代码,但这是我的问题。我现在该怎么办谢谢。
我想立即将代码分配给我在这里创建的按钮,我需要使用这个代码按钮并在给出它作为每个按钮的示例后Shift1 = 5 Shift2 = 10 Shift3 = 15 Shift4 = 20 Shift5 = 25需要来写。但是在它写的所有按钮中25.我创建的按钮数量是可变的。我正在研究SQL。按钮按名称生成值
我的代码;
public int syc = 0;
private void button1_Click(object sender, EventArgs e)
{
syc = 0;
Button[] ara = new Button[5];
for (int i = 0; i < 5; i++)
{
ara[i] = new Button();
ara[i].Text = "Shift";
ara[i].Size = new Size(50, 50);
ara[i].Location = new Point(50, i * 50);
this.Controls.Add(ara[i]);
ara[i].Click += Form1_Click;
syc = syc + 5;
}
}
private void Form1_Click( object sender, EventArgs e)
{
a(syc);
}
private int a(int b)
{
MessageBox.Show(b.ToString());
return b ;
}
答案 0 :(得分:0)
现在所有按钮在使用共享变量syc的click上共享相同的功能。这就是为什么它们都会激发相同的价值。
替换
var temp = i* 5;
ara[i].Click += (se, ev) => a(temp);
通过
FileList
这将为所有按钮创建一个专用功能。请注意,temp变量是必需的,因为它将由lambda捕获。
答案 1 :(得分:0)
控件具有多用途属性,称为“标记”。创建按钮时,将相应的int值放在那里,并在发件人的事件方法中获取它,即按钮。