2010-04-24 170 views
1

現在程序顯示消息框並等待用戶決定。 如何讓該程序不要等待?顯示消息框,螞蟻繼續前進。 (我不需要用戶操作,我只需要顯示文本)在新窗口中顯示消息

或者,也許是一個更好的選擇,而不是將信息報告給新窗口?

我希望能夠理解我的問題。

回答

1

快速簡便的方法:使用BackgroundWorker承載你的長期運行的作業,並使用工人的事件,彈出UI線程中的消息。

編輯:可能希望以消息日誌的形式顯示消息。

public partial class MainWindow : Form 
{ 
    #region Constructor 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
    #endregion 

    #region Events 
    private void button_Click(object sender, EventArgs e) 
    { 
     listBox.Items.Add("Job started!"); 
     backgroundWorker.RunWorkerAsync(); 
    } 
    private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      // send data from the background thread 
      backgroundWorker.ReportProgress(0, i); 
     } 
    } 
    private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) 
    { 
     // communicate with UI thread 
     listBox.Items.Add(string.Format("Received message: {0}", e.UserState)); 
    } 
    private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    { 
     listBox.Items.Add("Job done!"); 
    } 
    #endregion 
} 
1

創建一個新的Form,把一些控制它,它顯示給用戶:

new PopupForm().Show(); 
+0

謝謝你,但如何使用「新PopupForm類()。展();? 不理解。 – lolalola 2010-04-25 17:56:28

+0

您需要添加一個新的Windows形成到您的項目命名爲'PopupForm'。 – 2010-04-25 18:27:22

0

如果你只需要顯示一個通知窗口,然後this將是一個幫助,我寫的某個時候回來;像Outlook一樣的通知窗口。

alt text