我想实现一个,用 ProgressBar BackGroundWoker 显示连接数据库的进程条。当连接数据库成功后打开另一个窗口。程序如下。
private int iProgressValue = 1;
private void bgwWorker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker bgwValue = (BackgroundWorker)sender;
bgwWorker.ReportProgress(iProgressValue);
//连接数据库方法
DatabaseAccess();
if (DatabaseAccess() == true)
{
bgwWorker.ReportProgress(100);
}
}
private void bgwWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
pgbValue.Value = e.ProgressPercentage;
}
private void bgwWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.Visible = false;
Form2 form2 = new Form2();
form2.ShowDialog();
}
这样实现的话,进程条还没全部显示完,就打开了Form2窗口。我希望当进程条显示百分百后,Form2再显示。应该如何修改。
谢谢大家!
解决了 private void bgwWorker_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bgwValue = (BackgroundWorker)sender; bgwWorker.ReportProgress(iProgressValue); //连接数据库方法 DatabaseAccess(); if (DatabaseAccess() == true) { bgwWorker.ReportProgress(100); } //让当前窗口在关闭之前等一秒钟,这样就可以使进度条完全显示完,再执行下一个窗口 System.Threading.Thread.Sleep(1000); }