C#中为什么进度条不能执行完,也就是进度没到运行底

if(progressBar1.Value<progressBar1.Maximum){progressBar1.Value+=1;}就是用这个代码也不能运行完,请高手帮... if (progressBar1.Value < progressBar1.Maximum)
{
progressBar1.Value += 1;
}
就是用这个代码也不能运行完,请高手帮助下
我想让它,到底后,又重新开始,一直循环
展开
 我来答
ww960122
2012-11-20
知道答主
回答量:3
采纳率:0%
帮助的人:2868
展开全部
首先,做个实验在窗体上扔上个进度条控件。把进度条的Value值改成100,注意看,进度条不是一下就跳到满值的,而是缓慢的,逐渐的变到满值。也就是说,进度条跳帧这个特效是需要一定的延时的。而进度条每动一帧,这个延时都会累加,也就是说,你程序控制进度条每次+1,100次后,这个延时会搞到你看到进度条半天不动一下。
进度条的Paint过程是单独一个线程的,无论你的主线程如何处理都控制不了这个线程。你只能等系统处理完消息队列才能看到正常的效果。
处理这个等待的过程有人用System.Threading.Thread.Sleep(1000)过程,加延时的思路是对的,但是技术不对症。我们的目地是让系统把消息队列处理完,而不是系统去睡觉!
想让系统把消息处理完必须调用Application.DoEvents(),调一次还不成,怎么也还要等会儿,这个等待的函数是这样的:
private void MyDelay(int millisecond)
{
int i = Environment.TickCount;
while (Environment.TickCount - i < millisecond)
{
Application.DoEvents();
}
}

在progressBar1.Value += 1;这行后面加上这一句MyDelay(200);,好了绝对解决问题。
电子收据E收据
2010-11-30 · TA获得超过133个赞
知道小有建树答主
回答量:130
采纳率:100%
帮助的人:41.3万
展开全部
很有可能是你的progressBar1的step属性没有改,progressBar1的step属性默认是10,你改成1就行了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
junyi0124
推荐于2016-07-27 · TA获得超过577个赞
知道小有建树答主
回答量:326
采纳率:0%
帮助的人:286万
展开全部
progressBar1.Value 是进度条的当前值,progressBar1.Maximum是进度条的最大值。
不知道你之前怎么设置的。假定最开始你设置progressBar1.Value为0,progressBar1.Maximum为100。
private void process(object sender, RoutedEventArgs e)
{
if (progressBar1.Value < progressBar1.Maximum)
progressBar1.Value += 10;
else
{
progressBar1.Value = progressBar1.Maximum;
(sender as Button).IsEnabled = false;
}
}
这样当结束的时候,直接显示到头了。
=======================================================================
要是到底后,又重新开始,一直循环,你可以试试将progressBar1的Style修改为:Marquee
然后不用做任何修改了,原来的Value 之类的修改都可以去掉。可能就是你要的效果。
如果觉得不好,也可以修改代码为:
progressBar1.Style = ProgressBarStyle.Blocks;
if (progressBar1.Value < progressBar1.Maximum)
progressBar1.Value += 10;
else {
progressBar1.Value = progressBar1.Minimum;
}
这样到了最后,进度会归零。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haha5584
2010-11-30 · TA获得超过220个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:115万
展开全部
if改成While吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式