似乎c#中的winform上有10个按钮。 button1,button2,button3和button10。当我点击button3时,我需要得到3作为它的号码。有可能这样做吗?
private void button1_Click_1(object sender, EventArgs e)
{
MessageBox.Show(button1.number); //Show 1
}
答案 0 :(得分:3)
您可以使用LINQ。
Button btn = (Button) sender;
int number = int.Parse(new string(btn.Name
.Reverse()
.TakeWhile(Char.IsDigit)
.Reverse().ToArray()));
答案 1 :(得分:1)
您应该将按钮命名为1,2 ..等等
private void button1_Click_1(object sender, EventArgs e)
{
var button = (Button)sender;
MessageBox.Show(button.name);
}
答案 2 :(得分:1)
我只需将该数字添加到每个按钮的AccessibleName,然后当代码捕获click事件(对于所有按钮应该是相同的)时,只需询问名称是什么:
Button btn = (Button) sender;
switch (btn.AccessibleName) {
case "1":
//blah
}
答案 3 :(得分:1)
有几种方法可以做到这一点:
将字符串“1”分配给按钮的Tag
属性,然后写:
MessageBox.Show((sender as Button).Tag.ToString()); //Show 1
假设命名约定保持不变,请使用子字符串去除名称的“按钮”部分:
string name = (sender as Button).Name;
MessageBox.Show(name.Substring(7)); //Show 1
Tag
的MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tag(v=vs.110).aspx