C# 获取单击的按钮的文本值

C# 获取单击的按钮的文本值,c#,winforms,events,C#,Winforms,Events,试图从点击的按钮中获取文本值,在我的脑海中是这样的 private void button2_Click(object sender, EventArgs e) { string s = thisbutton.text } 触发事件的对象是发送者,因此: private void button2_Click(object sender, EventArgs e) { string s = (sender as Button).Te

试图从点击的按钮中获取文本值,在我的脑海中是这样的

private void button2_Click(object sender, EventArgs e)
        {
           string s =  thisbutton.text
        }

触发事件的对象是发送者,因此:

private void button2_Click(object sender, EventArgs e)
{
    string s = (sender as Button).Text;
}
应该是这样的:

private void button2_Click(object sender, EventArgs e)
{
  string s =  this.button2.Text;
}

只需将sender对象强制转换为Button对象并访问text属性:

protected void btn_Click (object sender, EventArgs e){
   Button btn = sender as Button;
   string s= btn.Text
}

在每个内置事件处理程序中,有两个参数
sender
e
sender
引用触发事件的对象。第二个参数
e
包含有关事件的一些信息(例如指针的位置和其他此类信息)
您只需将其设置为按钮类型并获取所需信息

尝试在按钮事件中应用此示例

private void button_click(object sender, EventArgs e)
{
   var getValue = ((Button)sender).Text; //this will get the value of the text using sender
}

这是一段时间前提出的问题,在我的例子中,平台可能与OP使用的略有不同,但我对GTK提出了相同的问题

我正在OSX中使用GTK2+在Xaramin/Visual Studio中开发,对我来说,最初接受的答案很接近,但产生了一个
。Text
不存在的错误。在我的例子中,它需要是
标签
。这对我很有用:

protected void Button_Clicked(object sender, EventArgs e)
{
    Button btn = sender as Button;

    lblWhichButton.Text = btn.Label;
    if (btn.Label == "<<<" )
        i--;
    else
        i++;
    lblCounter.Text = "" + i;
}
已单击受保护的无效按钮(对象发送者,事件参数e)
{
按钮btn=发送方为按钮;
lblWhichButton.Text=btn.Label;

如果(btn.Label=="
this.button2.Text;
将实际从按钮2获取文本,因此文本将始终相同。我假设此事件为多个按钮共享。不要注意方法名称
button2\u单击
。我确实想动态访问按钮,以便使用相同的代码。请参阅上面接受的答案。我应该更清楚一些我猜。当我使用这个按钮时,我得到的错误是“按钮”不包含文本的定义,intellisense只给我类似的文本输入。@DumitruDaniel当使用WPF时,你必须使用
(发件人作为按钮)。内容
。我猜
。文本
与Windows窗体相关。