2012-06-28 16 views
1

我目前在這裏遇到了表單問題。當另一個對話框位於頂部時禁用「關閉」按鈕

每當有一個進程正在進行時,我有一個應該彈出的進度對話框,但是當我點擊進度對話框後面的窗口/窗體的「X」按鈕時,它將被取消,正在進行的操作被取消。

我該如何防止這種情況發生?我是否必須在進度條後面禁用整個表單?我該怎麼做?

p.s. 我試過thisthisthis但是他們中沒有人似乎在我的應用程序中工作。 T__T

+0

當顯示進度條時,應該阻止用戶點擊後面窗體中的任何內容。 – Thinhbk

+1

是的。而已。這正是我想要發生的......以及如何做到這一點? – CMA

回答

3

使用Form.ShowDialog()代替Form.Show()啓動形式。這將禁用背景表單(實際上是過程中的任何其他表單),直到您顯示的表單關閉。作爲一個額外的好處,您可以讓表單返回一個值(例如,取消,確定,是,否等),以防止需要採取任何行動。

1

實際上沒有答案,你可能期待,但你可以處理Form.FormClosing事件,設置e.Cancel = True

這不會禁用關閉按鈕,但會使你的形式留在這種情況下打開。

多見於:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing.aspx

+0

我會在FormClosing事件中提供一個MessageBox提示,讓用戶知道長時間運行的進程仍在進行中。如果他們選擇等待,那麼設置e.Cancel = True。 –

+0

這是一個有趣的方法。共同用於多線程應用程序(即下載管理器)。 –

相關問題