我有多个按钮点击事件:
private void button1_Click(object sender, EventArgs e)
{
Procedure(1);
}
private void button16_Click(object sender, EventArgs e)
{
Procedure(16);
}
但是,我希望实现这样的目标:
private void button[i]_Click(object sender, EventArgs e)
{
Procedure(i);
}
答案 0 :(得分:1)
在Winforms中,类构造函数中有InitializeComponent()
的调用。
在该方法中(如果您将鼠标光标放在方法上并右键单击>转到定义或F12,它将转到表单设计器),您将看到如何连接事件:
button1_Click += button1_Click...
您只需将按钮点击事件订阅到Procedure
方法即可。
button1_Click += CallToProcedure;
你如何确定哪个按钮点击了?您只需将其从参数中的sender
参数中删除:
private void CallToProcedure(object sender, EventArgs e)
{
Button btn = sender as Button;
int i = Convert.ToInt32(btn.Name.Replace("button", string.Empty));
Procedure(i);
}
答案 1 :(得分:0)
您可以在Button的Tag
属性中存储您传递给按钮(在示例中为var senderButton = sender as Button;
if (sender != null)
{
Procedure((int) senderButton.Tag);
}
)的参数,然后使用以下内容:
private void button_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
int i = Convert.ToInt32(btn.Name.Replace("button", ""));
Procedure(i);
}
答案 2 :(得分:0)
如果你可以依赖命名,那么简单:
while (number_x_2 < 1000)
答案 3 :(得分:-1)
使用button.Tag属性,专为此类情况而设计。
读取是doc / MSDN