如何在C#中使用进度条?

时间:2016-04-18 13:24:33

标签: c#

我已经创建了一个用于登录的Windows窗体。在登录按钮上单击它将从文本文件中读取数据以进行用户名和密码验证。在此验证持续时间中,我想在登录按钮单击时向用户显示更新进度条。应该怎么做?请分享它的代码段。 P.S.:-如果可能的话,请使用backgroundworker线程分享片段。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

两种解决方案:

  • 带有按钮的表单显示进度条
  • 其他表单显示进度条。

考虑解决方案1:

  • 为您的表单提供BackGroundWorker。最容易使用工具箱的方法。
  • Backgroundworker属性:报告进度
  • 使用Visible = false;
  • 添加ProgressBar
  • 再次为事件DoWork,ProgressChanged和RunWorkerCompleted创建事件处理程序:为此使用designer / properties。

点击登录按钮后,您可以执行以下操作

  • ProgressBar.Visible = true
  • ProgressBar.Value = ProgressBar.Minimum
  • 抓取登录数据并使用RunWorkerAsync
  • 将其发送给后台工作人员

启动后台工作程序并调用DoWork的事件处理程序。

  • DoWork的后台工作程序处理程序,接收登录数据并将其发送到登录过程。
  • 希望后台工作人员从登录过程中获取进度信息,如果没有,让后台工作人员休息一会儿,并模拟一些进度(System.Threading.Thread.Sleep(Timespan.FromSeconds(1))
  • 当后台工作人员可以报告进度时(例如在睡眠之后),使用ReportProgress通知主线程。

在progress changed事件处理程序中,主线程可以更新进度条:使用Step或Set value。

当backgroundworker完成后,DoWork事件处理程序将结果放在eventArgs.Result中。

RunWorkerCompleted的事件处理程序可以决定将进度条值设置为最大值以指示完成或使进度条再次不可见。