2012-07-16 101 views
3

我試圖在執行操作時向用戶顯示MESSAGE消息。該消息不會顯示任何按鈕。只是一個消息(文本),也許是背景圖片。如何顯示C#中沒有任何按鈕的消息框

的問題如下:

  • 的MessageBox似乎並不成爲很好的控制(因爲按鈕,它阻止正在運行的進程)。
  • Form.ShowDialog()也會阻止正在運行的進程。我不知道該怎麼辦。
  • 我想顯示消息,運行我的過程,並在過程完成時處理消息。

如何在C#中實現此目的?

回答

2

創建自定義表單,並寫出自己的行爲

6

創建一個簡單的形式與消息(或公開公共屬性能夠更改消息,或消息參數的構造函數傳遞給它的)和show表格使用this Show overload。然後禁用(整個)原始(所有者)表單(或者只是禁用不想訪問的控件)。

所以,在你的 「主」 的形式做到這一點:

Form f = new MessageForm(); 
f.Show(this);   //Make sure we're the owner 
this.Enabled = false; //Disable ourselves 
//Do processing here 
this.Enabled = true; //We're done, enable ourselves 
f.Close();   //Dispose message form 

此外,可以考慮使用BackgroundWorker

0

創建一個自定義窗體將其設置爲最小樣式等。確保它知道什麼時候完成了進程,比如說通過傳入進程引用並檢查它。

0

你可以做到這一點的一種方法是創建一個worker類,當它完成時引發一個事件。

在一個新的thead執行工人類,所以它運行它的背景。

使用一種方法創建模態窗體,將其作爲「已完成」事件的事件處理程序關閉它。 這樣,UI仍然可以工作並響應,一旦工作線程完成,表單就會關閉。