【发布时间】:2015-10-23 10:01:22
【问题描述】:
我正在尝试从单击的按钮中获取文本值。在我的脑海中,它看起来像这样:
private void button2_Click(object sender, EventArgs e)
{
string s = thisbutton.text
}
【问题讨论】:
我正在尝试从单击的按钮中获取文本值。在我的脑海中,它看起来像这样:
private void button2_Click(object sender, EventArgs e)
{
string s = thisbutton.text
}
【问题讨论】:
触发事件的对象是sender,所以:
private void button2_Click(object sender, EventArgs e)
{
string s = (sender as Button).Text;
}
【讨论】:
(sender as Button).Content。我猜.Text 与 Windows 窗体有关。
只需将发送者对象转换为按钮对象并访问文本属性:
protected void btn_Click (object sender, EventArgs e){
Button btn = sender as Button;
string s= btn.Text
}
【讨论】:
应该是这样的:
private void button2_Click(object sender, EventArgs e)
{
string s = this.button2.Text;
}
【讨论】:
this.button2.Text; 实际上会从按钮 2 获取文本,因此文本将始终相同
button2_Click。
在每个内置事件处理程序中有两个参数sender 和e.Sender 引用触发事件的对象。第二个参数e 包含有关事件的一些信息(例如指针和其他此类的位置)
你只需要把它带到Button类型并得到你想要的信息
【讨论】:
尝试将此示例应用到您的按钮事件中
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 提出了相同的问题。
我正在使用 GTK2+ 在 OSX 中的 Xaramin / Visual Studio 中进行开发,对我来说,最初接受的答案很接近,但会产生 .Text 不存在的错误。就我而言,它必须是Label。这对我有用:
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;
}
【讨论】: