2011-10-28 70 views
0

我有一個windows窗體;並且有幾個控件。
我想讓它們在foreach循環中調用每個控件的Clear()方法,以使其清晰並重新啓動項目。如何獲取windows窗體上的所有控件頁面

我該怎麼辦呢?**

當我wath在VS 2008的調試模式formpage,我看到了「這個」因此,我可以看到他們都在它裏面..

.NET版本:2.0

+2

哪個控件有一個'.Clear()' - 方法? – Fischermaen

+0

如果你在調試器中看到它,你應該可以在代碼中使用它,特別是在IntelliSense的幫助下。 – jv42

+0

@ NumberEntry這是從我們的團隊項目文本框控件派生的 – theklc

回答

1

你可以通過這樣的控制循環:

foreach (Control ctrl in this.Controls) 
{ 
    if (ctrl is NumberEntry) 
    { 
     ((NumberEntry)ctrl).Clear(); 
    } 
} 
0

再次初始化控制無需清除表單中每個控件,只需清除控制和調用的InitializeComponent()

private void InitializeControls() 
     { 
      this.Controls.Clear(); 
      InitializeComponent(); 
     } 
2

您可能必須對控制等控制控件,以便它可能是一個好主意,把德米特里Erokhin代碼遞歸函數:

private void ClearNumberEntries(ControlCollection controls) 
{ 
    foreach (Control ctrl in controls) 
    { 
     if (ctrl is NumberEntry) 
     { 
      ((NumberEntry)ctrl).Clear(); 
     } 
     //if you are sure a NumberEntry can never have child controls that could also be of type NumberEntry you can put this in an else in stead 
     ClearNumberEntries(ctrl.Controls); 
    } 
} 
相關問題