首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

大伙说进度条如何显示!小疑点

2013-04-21 
大伙说进度条怎么显示!小问题! private void btnProgressBarStart_Click(object sender, EventArgs e) {th

大伙说进度条怎么显示!小问题!


 private void btnProgressBarStart_Click(object sender, EventArgs e) {
            this.labProgressBarShow.Visible = true; //状态显示可见.
            this.proBar.Value = 0;  //进度条的初始值.
            this.proBar.Minimum = 0;    //进度条最小值.
            this.proBar.Maximum = 10000; //进度条最大值.
            this.proBar.Step = 1;   //进度条的递增值.
            for (int i = 0; i <= this.proBar.Maximum; i += 1) {
                this.proBar.PerformStep();  //显示进度条每步的值.
                this.labProgressBarShow.Text = "当前进度" + i + ", 总值为 : " + this.proBar.Maximum;
               // Thread.Sleep(500);  //线程休眠.
            }
        }

Description:
我让Label显示每步的进度条的 Value,但是不懂为什么都是到结束了才显示:
 this.labProgressBarShow.Text = "当前进度" + i + ", 总值为 : " + this.proBar.Maximum;
开始我以为是时间太短了,我设进度条的最大值很大,还是一样不行,甚至我用线程 休眠,干脆就不走了...这怎么解释,解决哈?大侠们!
[解决办法]
this.labProgressBarShow.Text = "当前进度" + i + ", 总值为 : " + this.proBar.Maximum;后加上Application.DoEvents();
[解决办法]
进度条需要异步啊
[解决办法]
进度条值计算放到后台线程,有结果通过委托使前台改变。
[解决办法]
 for (int i = 0; i <= this.proBar.Maximum; i += 1) {
                 this.proBar.PerformStep();  //显示进度条每步的值.
                 this.labProgressBarShow.Text = "当前进度" + i + ", 总值为 : " + this.proBar.Maximum;
label1.refresh;
                // Thread.Sleep(500);  //线程休眠.
             }
[解决办法]
异步+委托,搞定。

热点排行