首页 > 解决方案 > 按钮点击事件集成

问题描述

我目前正在做材料搜索平台,我想用元素周期表做一个按钮。我现在正在做的是为元素周期表制作每个按钮,并为每个按钮制作每个点击事件。

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");
}

我想知道是否还有其他选择。例如,如果我按下按钮,系统会读取按钮上写的内容,并使用方法上的文本。这样我就可以减少我的代码行。

标签: c#.netwinforms

解决方案


您可以使用该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 包含对引发事件的控件/对象的引用。


推荐阅读