具有Text属性的多个按钮的一次单击事件

本文关键字:一次 单击 事件 按钮 属性 Text 具有 | 更新日期: 2023-09-27 17:49:21

我想为一堆按钮创建一个点击事件。问题是,我想使用按钮的文本,并将其传递给一个函数。现在,click事件被传递给对象发送者。当我尝试将其更改为Button sender时,它会给出错误。但是我不知道我还能怎么处理发送者的文本。

下面是正常的代码,给出一个错误:
private void guess_Click(object sender, EventArgs e)
{
     guess(sender.Text);
}

我把它改成了这样,它给出了错误:

private void guess_Click(Button sender, EventArgs e)
{
     guess(sender.Text);
}

问题:我如何在此单击事件中使用按钮的文本属性,这是多个按钮的单个click_event ?

具有Text属性的多个按钮的一次单击事件

步骤1:您需要将所有按钮的Button Click事件订阅到同一个EventHandler。因此,按钮点击你的所有按钮将触发相同的'事件处理程序。

步骤2:您需要将对象sender转换为Button,然后访问其Text属性以获得按钮文本。

试试这个:

button1.Click += new System.EventHandler(MyButtonClick);
button2.Click += new System.EventHandler(MyButtonClick);
button3.Click += new System.EventHandler(MyButtonClick);
private void MyButtonClick(object sender, EventArgs e)
{
  Button btnClick =  (Button)sender ;
  guess(btnClick.Text);
}

将发送者设置为类型按钮。

的例子:

private void guess_Click(object sender, EventArgs e)
{
     guess(((Button)sender).Text);
}

您需要将发送方对象强制转换为Button类型并使用它:

private void guess_Click(object sender, EventArgs e)
{
    Button senderBtn = senderBtn as Button;
    if(senderBtn != null)
    {
        guess(senderBtn.Text);
    }
}