ProgressBar值没有增加
本文关键字:增加 ProgressBar | 更新日期: 2023-09-27 18:14:18
我在login
表单中添加了一个进度条。
点击login
表单中的sign in
按钮后,next
表单从数据库中获取一些值(在表单加载中),然后next
表单在获取数据后打开。
现在,在next
表单打开之前,我想在login
表单的进度条中显示数据获取的进度。因此,我以next
的形式添加了以下代码:
Login login = new Login();
//loop...................
_recordCount = _recordCount + 1;
// Increment ProgressBar
ProgressBar progressBar = (ProgressBar) login.Controls["progressBarMainPageLoad"];
if (_recordCount*10 < 100)
{
progressBar.Value = _recordCount*10;
}
但是login
表单的进度条没有变化。有什么问题吗?
你应该为你的任务使用BackgroundWorker。
使用ProgressChanged
事件更改进度条值,使用DoWork
事件从数据库获取值。
不要忘记将WorkerReportsProgress
属性设置为true。
如果我正确理解你的代码,你尝试使用
引用Login表单的当前实例Login login = new Login();
当您在'next'
表单内时。但是这一行创建了Login表单的一个新实例,并且从这个新实例获得的进度条控件。因此,您实际上是在增加窗体上的进度条,而窗体并未显示在您的显示器上。
为了证明这一点,添加一个
login.Show()
要解决这个问题,您需要在这个next
表单中传递登录表单的正确实例,并引用它