2012-08-31 21 views
1

如果某個條件成立,我有一個表格,我可以通過上的this.Enabled = false將其設置爲禁用。如何激活禁用表單的控制框?

但是,這也會禁用控制框(最大化框,最小化框和關閉框)。

因此,當表單被禁用時,我無法關閉它,因爲關閉框也被禁用。

Is there away我可以禁用窗體,但離開關閉框啓用,以便我可以關閉禁用窗體?

這種形式'OnClose事件也會退出應用程序。

+0

您可以將面板添加到窗體 - 並將所有組件放置在此面板內。並禁用此面板 – JleruOHeP

+0

@neurotix:不,它的winforms – StackTrace

回答

0

如果條件爲真,可以構建一個小方法,並禁用此表單中可用的所有控件/容器。

僞代碼:

private void Form1_Load() 
    { 
     if(condition) 
     { 
      DisableControls(); 
     } 
    } 

    private void DisableControls() 
    { 
     foreach(Control c in this.Controls) 
     { 
      // your disable code here. 
     } 
    } 

編輯
這種方法沒有考慮在控制盒的效果。

+0

像JleruOHeP建議在原始帖子的評論中,我已經有一個tabControl託管在此表單上的所有其他控件。所以只是用它傳遞給你的DisableControls()方法。謝謝 – StackTrace