Windows 7 Aero 主题进度条错误?

2024-03-11

我在 Windows 7 上遇到了我认为是进度条错误的问题。为了演示该错误,我创建了一个带有按钮和进度条的 WinForm 应用程序。在按钮的“单击”句柄中,我有以下代码。

private void buttonGo_Click(object sender, EventArgs e)
{
  this.progressBar.Minimum = 0;
  this.progressBar.Maximum = 100;

  this.buttonGo.Text = "Busy";
  this.buttonGo.Update();

  for (int i = 0; i <= 100; ++i)
  {
    this.progressBar.Value = i;
    this.Update();

    System.Threading.Thread.Sleep(10);
  }

  this.buttonGo.Text = "Ready";
}

预期行为是进度条前进到 100%,然后按钮文本更改为“就绪”。然而,当在 Windows 7 上开发此代码时,我注意到进度条会上升到大约 75%,然后按钮文本会更改为“就绪”。假设代码是同步的,这不应该发生!

经过进一步测试,我发现在 Windows Server 2003 上运行的完全相同的代码产生了预期的结果。此外,在 Windows 7 上选择非航空主题会产生预期的结果。

在我看来,这似乎是一个错误。当长时间的操作涉及复杂的代码时,通常很难使进度条准确,但在我的特殊情况下,它非常简单,所以当我发现进度控件不能准确地表示进度时,我有点失望。

还有其他人注意到这种行为吗?有人找到解决方法了吗?


它与进度条的动画有关。如果你的进度条为 0%,而你将其设置为 100%,那么它不会跳到那里,而是让进度条平滑填充。如果速度太慢,您将在进度条完成动画之前完成。因此,即使您已经将其设置为 80%、90% 和 100%,动画仍然滞后。

我从未找到关闭此功能的方法,但我有一个解决方法。仅当您增加进度条时才会完成动画。如果你向后移动它,它会立即跳到那个位置。因此,如果我希望进度条位于 x% (x != 100),那么我将其移动到 x+1,然后移动到 x。如果我想要 100%,我会将其移动到 100%、99% 和 100%。 (或者无论您使用什么值,您都会明白。)它的运行速度足够快,以至于不可见,并且您也可以在以前的 Windows 版本中保留此代码。 (虽然我不)

HTH

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 7 Aero 主题进度条错误? 的相关文章

  • 线程不更新进度条控件 - C#

    我有一个带有自定义进度条的自定义表单 在主类 主线程 中生成 然后我生成一个线程并向其发送 ThreadStart 函数 此线程启动函数应该更新自定义控件中的进度条 但没有 class MyClass Custom form with pr
  • WinRT 组件能否在 Windows 7 中工作[重复]

    这个问题在这里已经有答案了 我读到Windows有来自Windows 8的新API 它被称为WinRT 我打算使用它 但我担心Windows 7 My Goal 我计划构建一种新的编程语言并使用它 但为了使其可用 它必须具有 Gui 编程
  • 我需要 SQLBulkcopy 的进度条

    我的应用程序需要进度条 我正在通过文本文件将数据上传到 SQL Server 但这需要很多时间 而且我也使用了后台工作程序 但这不能正常工作 所以我只需要知道是否有任何方法可以将进度条与 SQL Bulk Copy 一起使用它告诉我插入了
  • 在 Windows Vista/7 下复制到 Program Files

    我用C 编写了一个向导 它将一些文件安装到Windows下的程序文件文件夹中 据我了解 我需要管理员权限才能在 Vista 7 下写入程序文件 所以我的问题是 有没有一种方法可以在应用程序分别运行时仅针对一个向导页面打开管理员权限 或者我是
  • “Git Bash here”不会保留会话之间的 bash 历史记录[重复]

    这个问题在这里已经有答案了 我在 Windows 7 上运行 Git 1 8 0 preview20121022 并且安装时使用 Git Bash Only 对 Windows cmd 的干扰最小 当我从开始菜单快捷方式打开 Git Bas
  • Windows 7 .net Excel .SaveAs() HRESULT 错误异常:0x800A03EC

    背景 我在工作中为我的旧硬盘干杯 现在正在买一个新硬盘 这样我就必须重建我的机器 我的经理在他借用的笔记本电脑上安装了 Windows 7 在我的机器无法使用时我一直在使用这台笔记本电脑 但我遇到了一个问题 我们有相当多的应用程序使用 Mi
  • 如何从 XMLHttpRequest 获取进度

    是否可以获得 XMLHttpRequest 的进度 上传的字节数 下载的字节数 当用户上传大文件时 这对于显示进度条很有用 标准 API 似乎不支持它 但也许任何浏览器中都有一些非标准扩展 毕竟 这似乎是一个非常明显的功能 因为客户端知道上
  • win-7 cmd 上的 GNU awk,不会将输出重定向到文件

    如果相关的话 我直接从sourceforge中的GNU指向源下载了GNU awk V 3 1 6 我正在使用 Windows 版 wget 获取 URL 页面 处理传入的文件后 我将其减少为单行 我必须从中提取一个键值 这是一个相当长的字符
  • 如何向 UIAlertController 添加进度条?

    我想在 swift iOS 8 UIAlertController 中添加进度条 这可能吗 有没有办法继承 UIAlertController 并添加进度条并连接一些委托函数 thanks 如果您只需要一个进度条 只需将其添加为子视图 如下
  • Windows 7 中一个进程的 GDI 对象上限是多少?

    有一个存在 GDI 泄漏的应用程序 最终会达到 10 000 个分配的 GDI 对象并崩溃 我尝试增加GDI进程句柄配额 http msdn microsoft com en us library windows desktop ms724
  • Android进度条嵌入在ui中而不是对话框中

    有没有一种方法可以在不使用对话框的情况下将进度条嵌入到 UI 中 不是以编程方式 而是使用布局 xml 文件 我猜它必须是某种动画或 可绘制 您可以使用ProgressBar widget
  • 改变android中进度条的颜色

    我正在尝试更改水平进度条的颜色 但它没有改变 我做了一些谷歌搜索并浏览了您网站中给出的一些示例 但我没有成功地准确地改变颜色 我用了progressBar setProgressDrawable Drawable d 但它设置整个进度条视图
  • 从命令行将 java_opts 设置为 tomcat 服务

    我有一个在Windows上运行的tomcat7服务 通常为了配置 Java 选项 我会转到 Tomcat 7 0 bin tomcat7w exe 并在 java 选项卡中 在 java 选项中打印我想要的定义 例如 javaagent 我
  • Windows 7 为软件开发人员带来哪些好处? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试将我的开发计算机升级到 W
  • Android半圆形进度条-绘制半圆

    我用这个创建了一个半圆形进度条devadvance circularSeekBar https github com devadvance circularseekbar当我从调色板中选择自定义视图时 它看起来像这样 在此我有两个带有权重的
  • C# WebClient 使用异步并返回数据

    好吧 我在使用 DownloadDataAsync 并让它返回字节给我时遇到了问题 这是我正在使用的代码 private void button1 Click object sender EventArgs e byte bytes usi
  • WPF 进度条动画速度

    我注意到 WPF 进度栏和 WinForms 进度栏完全填满所需的时间存在差异 完全填充 就像在 Form 和 WPF 中将值设置为 100 一样 我们可以注意到 WinForms 平滑地填充栏 而 WPF 立即填充它 我想知道是否有一个属
  • 如何防止文件重定向到 VirtualStore 来读/写文件?

    我正在使用 C 和 net 2 0 我将程序数据保存在以下文件中 C ProgramData MyProgramName fileName xml 安装并运行我的应用程序一次后 我将其卸载 在卸载过程中 我从 程序数据 中删除了所有文件 然
  • ActionBar 中的进度条

    我正在使用一个应用程序 它将在应用程序内部加载一个网站 现在我想在操作栏中添加一个进度栏 而无需向上滑动来抑制功能 像那样 我在用Fragment在我的应用程序中 WebviewFragment public class WebviewFr
  • 上传进度条 Java Servlet?

    我想使用 servlet 显示上传进度条 我尝试过Ajax iFrame 技术 页面没有重新加载 文件也被上传 但是 进度条没有出现 有没有可用于 javaservlts 的 jQuery 进度插件 Thanks 我强烈推荐jQuery 上

随机推荐