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...
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%),否则Samir的解决方案将可以正常工作.为了使这项工作也达到100%,必须先增加最大值.以下对我来说很好.
if (NewValue < progressBar.Maximum)
{
progressBar.Value = NewValue + 1;
progressBar.Value--;
}
else
{
progressBar.Maximum++;
progressBar.Value = progressBar.Maximum;
progressBar.Value--;
progressBar.Maximum--;
}
沃梦达教程
本文标题为:在Vista或Windows7中C#进度栏未正确更新
基础教程推荐
猜你喜欢
- C#中Linq的入门教程 2023-06-09
- 关于C#继承的简单应用代码分析 2023-04-15
- 解析c# yield关键字 2023-03-09
- c# – Entity Framework 7和SQLite Tables没有创建 2023-11-23
- c# 遍历 Dictionary的四种方式 2023-03-10
- C#实现单例模式的6种方法小结 2023-07-04
- C# 使用SharpZipLib生成压缩包的实例代码 2022-12-31
- C#中的小数和百分数计算与byte数组操作 2023-06-04
- C#串口接收程序的实现 2023-06-05
- 区分C# 中的 Struct 和 Class 2023-03-10