【问题标题】:Update progress bar Value dynamically according to process pourcentage C#根据流程pourcentage C#动态更新进度条值
【发布时间】:2016-05-31 12:21:37
【问题描述】:

我创建了一个应用程序,我在其中从 excel 文档中读取数据。我正在使用后台工作人员完成所有耗时的任务。我如何显示进度条中完成了多少百分比的工作?

我知道有 Report_Progress 事件,但这是否意味着我需要指定硬编码值?

有什么方法可以让我得到总工作中完成了多少百分比的工作?

我想在复制窗口显示进度条时指定一个示例,并根据复制的数据百分比增加。

请帮帮我

谢谢

【问题讨论】:

  • 是的,您需要指定它。它不能神奇地计算出你有多远。您需要提供一个 minimal reproducible example 来显示您的尝试以及您遇到的问题,这个问题就目前而言太宽泛了。

标签: c# wpf progress-bar


【解决方案1】:
BackgroundWorker backgroundWorker = new BackgroundWorker();

backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.WorkerSupportsCancellation = true;
backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);

void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{ 
    backgroundWorker.ReportProgress(yourprogress);
}

void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
             Messagebox.show(e.ProgressPercentage.toString())
             /// update you progressbar here with e.ProgressPercentage
             progressBar.Value = e.ProgressPercentage;

}

你可以找到另一个例子here

【讨论】:

  • SamP - 如果您正在更新DataContext,那么使用它会很简单。否则,如果您直接更新 UI 控件(不建议这样做),则需要使用 Dispatcher 来调用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多