日期:2014-05-18  浏览次数:20825 次

Winform 使用BackgroundWorker组件,Background work时如何禁止界面操作
一个Winform程序,使用TreeView进行分类的维护,用户可以通过右键进行刷新载入、添加、编辑、删除节点,这些操作都使用BackgrondWorker在后台运行,但是用了这个组件后,虽然界面可以不假死,但是一个操作未完成时,用户可能会进行其他操作,比如添加在后台运行时,用户可能又要删除等。如何在一个操作未完时,禁止用户界面操作?

------解决方案--------------------
加个进度条窗体 
backgroundWorker1.RunWorkerAsync();
proForm.ShowDialog(); //进度条窗体 show出来


在RunWorkerCompleted 关闭 
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
proForm.Close();
}

proForm窗体做的小一点,就放一个ProgressBar 。ProgressBar 的style属性设置成Marquee,就是循环滚动。
------解决方案--------------------
http://archive.cnblogs.com/a/2045702/