如何在c#中作为名称访问控件数量?

时间:2014-05-16 16:29:13

标签: c# button controls

似乎c#中的winform上有10个按钮。 button1,button2,button3和button10。当我点击button3时,我需要得到3作为它的号码。有可能这样做吗?

private void button1_Click_1(object sender, EventArgs e)
{
    MessageBox.Show(button1.number); //Show 1
}

4 个答案:

答案 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. 将字符串“1”分配给按钮的Tag属性,然后写:

    MessageBox.Show((sender as Button).Tag.ToString()); //Show 1
    
  2. 假设命名约定保持不变,请使用子字符串去除名称的“按钮”部分:

    string name = (sender as Button).Name;
    MessageBox.Show(name.Substring(7)); //Show 1
    
  3. Tag的MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tag(v=vs.110).aspx