2010-04-24 101 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