2014-05-16 59 views

回答

2

您可以使用OfType方法

var comboBoxes = this.Controls 
        .OfType<ComboBox>() 
        .Where(x => x.Name.StartsWith("comboBox")); 

foreach(var cmbBox in comboBoxes) 
{ 
    cmbBox.Text = "Hello world"; 
} 
1

形式有Controls property,返回所有控件的集合,其中can be indexed by the name of the control

for(int i = 0; i < 10; i++) 
{ 
    var comboBox = (ComboBox)this.Controls["comboBox" + i.ToString()]; 
    comboBox.text = "Hello world"; 
} 
+1

我想你的意思'this.Controls [ “组合框” + i.ToString()]' –

+0

@ Selman22:是的,谢谢!最近用了太多的VB ... – Heinzi

2

您可以访问到所有的组合框的形式方法(假设this是一种形式):

 List<ComboBox> comboBoxList = this.Controls.OfType<ComboBox>(); 

然后你只需要在它们之间迭代

 foreach (ComboBox comboBox in comboBoxList) 
    { 
     comboBox.Text = "Hello world!"; 
    } 
+0

这对我来说似乎非常有用,也很简单,但是'this'有问题。我如何使用它?它是form1吗? – UserMat

+0

@UserMat是的,它应该是你的Form变量,如果你将它命名为form1,那么它应该是form1;) – TopinFrassi