如何使用Progress Bar?

时间:2012-07-31 09:49:19

标签: c# .net wpf telerik

我正在WPF Windows应用程序中处理Progress Bar。我的问题是我有一个微软访问数据库格式的数据,我想将数据复制到数据库中,复制应该只在点击按钮后发生。在数据复制到数据库时,进度条应该得到启用。

2 个答案:

答案 0 :(得分:0)

我不确定,但我认为后台工作者正在寻找的是链接 BackGroundWorker

答案 1 :(得分:0)

为了使用进度条,您需要创建一个与ui线程分开的新线程。后台工作者可能是这样做的最佳方式:

 private BackgroundWorker worker = new BackgroundWorker();

 worker.WorkerReportsProgress = true;
 worker.DoWork += new DoWorkEventHandler(worker_DoWork);
 worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
 Worker.ProgressChanged += new ProgressChangedEventHandler(Worker_ProgressChanged);

在worker_DoWork事件中,您应该放置您想要的东西。在这种情况下复制数据。这也是我将进度条控件设置为可见的事件(默认情况下应该不可见)。要更新进度条上的值,您需要执行

 worker.ReportProgress(int amountDone)

现在,由于Vale对你的帖子发表评论,你可以通过一种切实的方式来获得已经完成的工作的百分比/数量,在这种情况下,行数可能是最好的方法。它:NumberOfRowsCopied / TotalNumberOfRows * 100 =完成百分比?

要启动后台工作程序,请在按钮单击事件/命令中执行:

if (bw.IsBusy != true)
{
    bw.RunWorkerAsync();
}

如果您对确定取得的进展没有信心,那么也许可以使用侯爵控制,这只会向用户显示程序没有崩溃并且仍然有效。

相关问题