2015-03-13 13 views
0

我有一個包含許多控件的窗體。在列表中有一個字段,應該禁用所有其他控件以防止任何進一步的用戶操作。同時在多個字段上額外禁用屬性

您是否知道是否有這種簡單的方法?想不要在所有字段上逐一添加相同的禁用條件(在自己的啓用邏輯之上)?

回答

1

如果沒有代碼示例(不必介意a good, minimal, complete one),無法提供具體的建議。但是,您可以枚舉表單中的所有控件,當然,您也可以將Enabled標誌設置爲false

這可能是這個樣子:

void SetEnabledForAllControls(ControlCollection controls, bool value) 
{ 
    foreach (Control control in controls) 
    { 
     control.Enabled = value; 
     SetEnabledForAllControls(control.Controls, value); 
    } 
} 

您可以通過傳遞Form.Controls價值的形式爲controls參數,而新的值(truefalse)稱其爲每個Enabled財產控制作爲第二個參數。

這不是從你的問題是什麼field that should disable all other controls是明確的,但如果這是一個控制自身相同的形式,你要記住調用上述方法之後其Enabled屬性設置回true,否則」我們也會被禁用。

+0

謝謝!正是我在找什麼。將盡力實現這一點 – goul 2015-03-13 07:40:47