【发布时间】:2010-04-06 06:31:23
【问题描述】:
public partial class Form1 : Form
{
//....
private void timer1_Tick(object sender, EventArgs e)
{
if (this.progressBar1.Value >= 100)
{
this.timer1.Stop();
this.timer1.Enabled = false;
}
else
{
this.progressBar1.Value += 10;
this.label1.Text = Convert.ToString(this.progressBar1.Value);
}
}
//......
}
这里我使用了一个计时器来更新进度条的值。它在 XP 中运行良好。但是在 Windows7 或 Vista 中,当进度值设置为 100 但图形进度不是 100 时!
搜索一些线程发现它在Vista/Windows7中的动画滞后。
如何摆脱这个东西?
我不想失去 Vista/Window7 的外观和感觉:
SetWindowTheme(progressBar1.Handle, " ", " ");
【问题讨论】:
-
你看到了什么?它对我来说按预期工作......
-
显示进度的标签 = 100% 完成!但进度条似乎仍然是 80% 或 90%。不是我们想要的,对吧?
-
我假设你在这里使用的是 Windows 窗体(因为你的代码中没有 Dispatcher 引用),我必须同意 codeka,它在这里就像一个魅力......我们需要更多细节
-
@TimothyP:我已经看到这种行为 100 次了。因此,除非您从未在 Vista 或更高版本上使用过 WinForms,否则您不会注意到。
-
好吧,我也见过几次,当进度在一秒钟左右从 0% 快速变为 100% 时,这种情况经常发生......
标签: c# progress-bar