我想为一堆按钮进行点击事件。问题是我想使用按钮的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?
答案 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);
}
}