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#进度栏未正确更新


猜你喜欢
- Oracle中for循环的使用方法 2023-07-04
- 一次有趣的Linux下.Net Core与C语言的合作开发体验:生成Linux标准的用户密码串 2023-09-26
- Unity2023发布WebGL与网页交互问题的解决 2023-06-08
- C# 中如何使用Thread 2023-03-29
- 在 .NET Core 中构建 REST API 2023-09-27
- c# 代码调试技巧和如何远程调试 2023-03-14
- Windows CE上的C#.NET 3.5 CF,更改DataGrid中的行背景颜色 2023-09-20
- C#实现的pdf生成图片文字水印类实例 2022-11-15
- c#在程序中定义和使用自定义事件方法总结 2023-01-16
- 使用Topshelf框架操作Windows服务 2023-06-14