2011-11-22 46 views
1

我在WinForm中有十個組框。每個組框包含10個文本框,並且我已經定義了每個TextBox的名稱。我如何使用foreach循環獲取每個文本框?使用foreach循環來檢索GroupBox中的TextBox

+0

請正確標記問題。 – Zohaib

+2

-1適用於:標記,格式。小寫等.. –

+0

首先找到groupbox類型的控件,然後投入並獲得其中的類型文本框的控件 – V4Vendetta

回答

1

試試下面的代碼,

Control.ControlCollection coll = this.Controls; 
foreach(Control c in coll) { 
    if(c != null) 
} 
+0

對你的幫助很有用 – hanmyint

4

這裏是我的建議:

foreach(var groupBox in Controls.OfType<GroupBox>()) 
{ 
    foreach(var textBox in groupBox.Controls.OfType<TextBox>()) 
    { 
     // Do Something 
    } 
} 

,或具有在一個循環:

foreach (var textBox in Controls.OfType<GroupBox>().SelectMany(groupBox => groupBox.Controls.OfType<TextBox>())) 
{ 
    // Do Something 
} 
+0

對你的幫助很有用 – hanmyint

12
foreach(Control gb in this.Controls) 
{ 
     if(gb is GroupBox) 
     { 
      foreach(Control tb in gb.Controls) 
      { 
      if(tb is TextBox) 
      { 
       //here is where you access all the textboxs. 
      } 
      } 
     } 
} 

但是,如果你定義每個文本框名稱 通過循環獲得每個TextBox有什麼意義?

你可以定義一個List<TextBox>在建立它們來保存每個TextBox的參考,然後只是去雖然List讓每個TextBox的訪問。

+0

對於答案中的好問題+1。 – Jodrell

+0

感謝您的幫助,它很有用 – hanmyint

0
foreach (var ctrl in gbDatabaseColumns.Controls) 
{ 
    if (ctrl is DevExpress.XtraEditors.TextEdit) 
    { 
     StoreTextEdit(config, (ctrl as DevExpress.XtraEditors.TextEdit)); 
    } 
}