2011-01-13 62 views
0

一旦我啓動一個贏表單應用程序,我創建一個後臺工作來做一些初始化。當這種初始化發生時,我希望表單中的所有按鈕保持禁用狀態。禁用所有控件,直到線程完成執行

我在想最好的辦法是做什麼。我能想到的一個直接的方法是在線程完成的事件中設置一個標誌。還有其他更好的方法嗎?

回答

2

在這樣的情況下,我通常把控制成Panel,當後臺進程啓動禁用面板,然後當工作完成後再次啓用它。這樣你就不需要跟蹤每個控件的Enabled狀態。可以在窗體的Load事件處理程序(或OnLoad重寫,具體取決於您的編碼風格)中完成對面板的調試並啓動後臺工作程序。

0

有舊的「顯示應用程序的截圖」技巧;它給出了接近即時啓動時間的錯覺,當然用戶無法與控件進行交互,直到用初始化表單替換圖像。

您可以保持窗體隱藏,直到初始化完成,然後顯示啓動畫面。

您可以顯示一個模式對話框,一旦初始化完成後自動關閉。

1

我們可以使用委託disablealldelegate禁用所有控件線程的初始化和線程退出時,我們可以用另一種代表enablealldelegate,使所有的控件(或所需的控制)

使用splashscreens或loadingscreens或登錄形式也是可行的

0

默認情況下,我會禁用窗體設計器中的按鈕。

然後,我會將代碼添加到我的初始化方法的末尾,以便在初始化的其餘部分完成時啓用它們。

相關問題