c# 关于进度条.....

chirsty423 2009-12-26 01:51:50
问一个问题哈,我现在有个button事件,按下以后触发这个事件

事件的内容就是执行几个SQL操作,执行成功后MessageBox.Show("操作成功!");

我现在想在这个事件 正在执行的时候到弹出"操作成功"之间

加进度条怎么 实现呢?
...全文
121 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
l13864860169 2009-12-26
  • 打赏
  • 举报
回复
en
Lucky_6Q 2009-12-26
  • 打赏
  • 举报
回复
路过,学习!
jflanmay 2009-12-26
  • 打赏
  • 举报
回复
学习
ly006404 2009-12-26
  • 打赏
  • 举报
回复
学习
maninghong 2009-12-26
  • 打赏
  • 举报
回复
额,来学习的
ProjectDD 2009-12-26
  • 打赏
  • 举报
回复
如果你的SQL操作比较用时的话那么你可以用BackgroundWorker组件来做进度报告

把你的SQL操作(耗时)交给bw组件的DoWork事件来做,进度条交给ProgressChanged 事件

做完了你要做的事情使用 RunWorkerCompleted 事件的响应业做,在DoWork里面引用
ProgressChanged事件以报告进度条,通常是在一个循环里面不断的报告进度条

例如:

public void Run() {
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
bw.RunWorkerAsync();
this.pb.Maximum = 100;
this.pb.Width = this.f.Width - 10;
this.bw.WorkerReportsProgress = true;
f.Controls.Add(this.pb);
this.f.ShowDialog();
}
Form f = new Form();
void bw_RunWorkerCompleted(object sender , RunWorkerCompletedEventArgs e) {
MessageBox.Show("操作完成");
}
ProgressBar pb = new ProgressBar();
void bw_ProgressChanged(object sender , ProgressChangedEventArgs e) {
this.pb.Value = e.ProgressPercentage;
}
int percent=0;
void bw_DoWork(object sender , DoWorkEventArgs e) {
for (int i = 0 ; i < 10 ; i++) {
Thread.Sleep(1000);
this.percent += 10;
this.bw.ReportProgress(this.percent);
}
}

lomyrr 2009-12-26
  • 打赏
  • 举报
回复
用timer也行吧..
mngzilin 2009-12-26
  • 打赏
  • 举报
回复
progressBar1.Maximum = 4;//假设有四句sql
progressBar1.Minimum = 0;
//执行一句sql
progressBar1.Value++;
//执行一句sql
progressBar1.Value++;
eHuaTian 2009-12-26
  • 打赏
  • 举报
回复
使用AJAX的updateprogress

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧