winform 进度条问题 BackGroundWorker 一个窗口 打开另一个窗口时 很慢 实现进度条
登录界面登录到具体操作界面时很慢怎么可以实现用进度条来做这个事情呢,就是具体一点谢谢了...
登录界面 登录到 具体操作界面时 很慢 怎么可以 实现 用 进度条来做这个事情呢,就是 具体一点谢谢了
展开
3个回答
展开全部
一般没有这样做,不过真的想实现我提供一种方法,不过这个不是事实获得查询进度去改变这个精度条的值!思路希望对你有帮助!
private void btnLogin_Click(object sender, EventArgs e)
{
progressBar1.Maximum=10;
//1.调用bgwLogin的RunWorkerAsync方法,用来引发DoWork事件
bgwLogin.RunWorkerAsync(count);
}
private void bgwLogin_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
//2.在DoWork中调用自定义函数,并将引发DoWork事件的sender传递出去
progressBar1.Value = 1;
Login(worker);
}
//自定义函数 Login()
private void Login(BackgroundWorker worker)
{
//doDataOperate是写的一个类的实例
progressBar1.Value = 3;
SqlDataReader sqlreader = doDataOperate.getread(查询语句);
if (sqlreader.Read())
{
progressBar1.Value = 10;
MessageBox.Show("登录成功");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
}
}
private void btnLogin_Click(object sender, EventArgs e)
{
progressBar1.Maximum=10;
//1.调用bgwLogin的RunWorkerAsync方法,用来引发DoWork事件
bgwLogin.RunWorkerAsync(count);
}
private void bgwLogin_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
//2.在DoWork中调用自定义函数,并将引发DoWork事件的sender传递出去
progressBar1.Value = 1;
Login(worker);
}
//自定义函数 Login()
private void Login(BackgroundWorker worker)
{
//doDataOperate是写的一个类的实例
progressBar1.Value = 3;
SqlDataReader sqlreader = doDataOperate.getread(查询语句);
if (sqlreader.Read())
{
progressBar1.Value = 10;
MessageBox.Show("登录成功");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
}
}
参考资料: MSDN
展开全部
用一个大的图片把 具体操作界面盖住 在图片上面放一个进度条
如果能得到 具体操作界面加载完的信息 就把进度条+满 图片的visble=false
具体操作界面 visble=true
如果不能得到 具体操作界面加载完的信息 那么就计算下大概时间 设置进度条 慢点 当进度条+满的时候 就让图片visble=false ,具体操作界面 visble=true
进度条应该会用吧 有控件的在 来个timer控件 来控制++
或者用个 lable...都行 就是让他的wide ++ 就行了
如果能得到 具体操作界面加载完的信息 就把进度条+满 图片的visble=false
具体操作界面 visble=true
如果不能得到 具体操作界面加载完的信息 那么就计算下大概时间 设置进度条 慢点 当进度条+满的时候 就让图片visble=false ,具体操作界面 visble=true
进度条应该会用吧 有控件的在 来个timer控件 来控制++
或者用个 lable...都行 就是让他的wide ++ 就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果有线程就sleep少点,用时间控件也是,时间短点.进度条的值小点,保证之前窗体的所有不需要的事件DISPOSE() 就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询