如何在c#中以名称访问控件数?

如何在c#中以名称访问控件数?,c#,button,controls,C#,Button,Controls,在c#中,winform上似乎有10个按钮。按钮1、按钮2、按钮3和按钮10。当我点击按钮3时,我需要得到3作为它的数字。有可能这样做吗 private void button1_Click_1(object sender, EventArgs e) { MessageBox.Show(button1.number); //Show 1 } 你应该把你的按钮命名为1,2等等 private void button1_Click_1(object sender, EventArgs e)

在c#中,winform上似乎有10个按钮。按钮1、按钮2、按钮3和按钮10。当我点击按钮3时,我需要得到3作为它的数字。有可能这样做吗

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

你应该把你的按钮命名为1,2等等

private void button1_Click_1(object sender, EventArgs e)
{
var button = (Button)sender;
 MessageBox.Show(button.name);
}

你应该把你的按钮命名为1,2等等

private void button1_Click_1(object sender, EventArgs e)
{
var button = (Button)sender;
 MessageBox.Show(button.name);
}
你可以用LINQ

Button btn = (Button) sender;
int number = int.Parse(new string(btn.Name
    .Reverse()
    .TakeWhile(Char.IsDigit)
    .Reverse().ToArray()));
你可以用LINQ

Button btn = (Button) sender;
int number = int.Parse(new string(btn.Name
    .Reverse()
    .TakeWhile(Char.IsDigit)
    .Reverse().ToArray()));

我只需将该数字添加到每个按钮的AccessibleName中,然后当代码捕获click事件时(对于所有按钮都应该相同),只需询问名称:

 Button btn = (Button) sender;
 switch (btn.AccessibleName) {
    case "1":
       //blah
  }

我只需将该数字添加到每个按钮的AccessibleName中,然后当代码捕获click事件时(对于所有按钮都应该相同),只需询问名称:

 Button btn = (Button) sender;
 switch (btn.AccessibleName) {
    case "1":
       //blah
  }

有几种方法可以做到这一点:

  • 将字符串“1”指定给按钮的
    标记
    属性,然后写入:

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

    string name = (sender as Button).Name;
    MessageBox.Show(name.Substring(7)); //Show 1
    

  • 标签的MSDN

    有几种方法可以做到这一点:

  • 将字符串“1”指定给按钮的
    标记
    属性,然后写入:

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

    string name = (sender as Button).Name;
    MessageBox.Show(name.Substring(7)); //Show 1
    

  • 标签的MSDN

    按钮的名字太可怕了!尽管如此,它还是会起作用的。我只是不推荐。那些按钮的名字太糟糕了!尽管如此,它还是会起作用的。我只是不推荐它。如果它已经是字符串“1”,为什么不直接使用它呢?切换的目的是什么?是的,你可以很容易地解析按钮名称,去掉“按钮”部分,留下数字。剥猫皮的方法不止一种。显然,该开关允许根据按钮进行各种处理。如果它已经是字符串“1”,为什么不直接使用它呢?切换的目的是什么?是的,你可以很容易地解析按钮名称,去掉“按钮”部分,留下数字。剥猫皮的方法不止一种。该开关显然允许根据按钮进行各种处理。