带有Text属性的多个按钮的单击事件

时间:2014-03-09 16:10:59

标签: c# events button text properties

我想为一堆按钮进行点击事件。问题是我想使用按钮的Text,并将其传递给一个函数。现在click事件传递给对象发送者。当我尝试将其更改为Button发件人时,它会出错。但我不知道我怎么能与发件人Text一起工作。

这是正常的代码,它给出了一个错误:

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

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

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

问题: 如何在此单击事件中使用Button的Text属性,这是一个针对多个按钮的click_event?

3 个答案:

答案 0 :(得分:3)

第1步:您需要将所有按钮的按钮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);
}

答案 1 :(得分:0)

将发件人投射到类型按钮。

示例:

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

答案 2 :(得分:0)

您需要将发件人对象强制转换为Button类型并使用:

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