ProgressBar的同步问题

[复制链接]
查看11 | 回复8 | 2021-1-27 06:07:43 | 显示全部楼层 |阅读模式
我做了个很简单的测试程序,代码如下:
PrivateSubTimer1_Tick(senderAsObject,eAsEventArgs)HandlesTimer1.Tick
ProgressBar1.Value+=10
Label1.Text=ProgressBar1.Value*100\ProgressBar1.Maximum&"%"
IfProgressBar1.Value=100ThenTimer1.Enabled=False
EndSub
PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.Click
Timer1.Enabled=True
EndSub
测试中,Label1.Text已经100%了,ProgressBar1才走了一大半,Maximum越小越明显。
请问谁有什么好办法解决这个问题?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
人为放大下撒。

回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
Maximum放大,ProgressBar1.Value+=10不是跟着要放大,那结果还是一样吧。
回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
设定最大值
PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.Tick
ProgressBar1.Maximum=100
ProgressBar1.Value+=10
Label1.Text=ProgressBar1.Value*100\ProgressBar1.Maximum&"%"
IfProgressBar1.Value=100ThenTimer1.Enabled=False
EndSub
回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
Maximum本来就是100呀。
回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
原因是定时时间间隔太短了,把定时器Timer1的interval设置为1000,则可以解决问题。
回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
PrivateSubTimer1_Tick(senderAsObject,eAsEventArgs)HandlesTimer1.Tick
ProgressBar1.Value+=10
Label1.Text=ProgressBar1.Value*100\ProgressBar1.Maximum&"%"
IfProgressBar1.Value>=100ThenTimer1.Enabled=False'>=
EndSub
PrivateSubButton1_Click(senderAsObject,eAsEventArgs)HandlesButton1.Click
ProgressBar1.Value=0'初始
Timer1.Enabled=True
EndSub
回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
ProgressBar这种东西,丢在线程里比较好吧
回复

使用道具 举报

千问 | 2021-1-27 06:07:43 | 显示全部楼层
同7楼,能不用timer就不要用timer,另开线程好一些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行