使用计数器迭代控件名称

时间:2014-02-17 00:43:38

标签: c# .net

我在Windows窗体中有超过100个按钮,我想根据for循环中的计数器访问命令Button.PerformClick()的名称。例如:Button + Convert.Tostring(Counter).PerformClick()我该怎么做?

1 个答案:

答案 0 :(得分:6)

您可以使用OfType扩展程序循环浏览所有按钮:

foreach(var button in this.Controls.OfType<Button>())
{
    // do something with button
    button.PerformClick();
}

For loop version:

for(int i=0; i<counter; i++)
{
   string name = "Button" + i;
   if(this.Controls.ContainsKey(name))
   {
      var currentButton = this.Controls[name] as Button;
   }
}

注意:此答案假定您的按钮是Form的直接子元素。如果Buttons内有Panel,那么您应该访问面板的ControlCollection panelName.Controls代替this.Controls