c# - 按钮点击事件集成
问题描述
我目前正在做材料搜索平台,我想用元素周期表做一个按钮。我现在正在做的是为元素周期表制作每个按钮,并为每个按钮制作每个点击事件。
public void bc(string a)
{
if (MainEntry.Text == "")
{
MainEntry.Text = a;
}
else
{
MainEntry.Text = MainEntry.Text + "," + a;
}
}
private void buttonLi_Click(object sender, EventArgs e)
{
bc("Li");
}
private void buttonBe_Click(object sender, EventArgs e)
{
bc("Be");
}
我想知道是否还有其他选择。例如,如果我按下按钮,系统会读取按钮上写的内容,并使用方法上的文本。这样我就可以减少我的代码行。
解决方案
您可以使用该Sender
对象,但首先您需要订阅一个事件的所有按钮点击,如下所示:
public Form1()
{
InitializeComponent();
buttonLi.Click += button_Click;
buttonBe.Click += button_Click;
}
private void button_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
bc(btn.Text);
}
Sender 包含对引发事件的控件/对象的引用。