如何获得多个按钮.文本值取决于单击的按钮



所以在我的程序中,我想点击一个按钮并放置该按钮。将值文本输入到datagridview表中。我有16个按钮,所以我不想为每个按钮重复整个代码,而是调用一个奇异的方法来获得按钮。的文本

//this would get button4.Text value and input into the table.
private void button4_Clicked(object sender, EventArgs e)
{
items_Add();
}
//this would get button5.Text value and input into table.
private void button5_Clicked(object sender, EventArgs e)
{
items_Add();
}

感谢

这可能对你有用。只需订阅所有按钮上的活动。

button1.Click += myEventHandler;
button2.Click += myEventHandler;
button3.Click += myEventHandler;
button4.Click += myEventHandler;
button5.Click += myEventHandler;
button6.Click += myEventHandler;

然后

private void myEventHandler(object sender, EventArgs e)
{
items_Add();
}

您可以使用按钮的文本,同时决定在您的通用方法中对所有按钮执行什么操作当然,您可以通过将所有按钮订阅到单个事件监听器来创建公共事件监听器。

button1.Click += button_Click;
button2.Click += button_Click;
button3.Click += button_Click;
...
private void button_Click(object sender, EventArgs e)
{
Button b = sender as Button;
if(b == null)
return; // you can return, or throw an exception. It depends on your requirements.
string text = b.Text;
items_Add(text); //assuming this is your common method
}

编辑:在sender上添加了一些验证,以确保它真的是Button

这是另一种对每次单击按钮都更灵活的方法。

将所有按钮点击事件绑定到button1_Click

Button btn = sender as Button;
switch (btn.Text)
{
case "textval1":
items_Add();
break;
case "textval2":
items_Add();
break;
case "textval3":
items_Add();
break;
}

最新更新