2014-05-16 93 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