什么可能会破坏winforms progressBar?

时间:2011-03-24 13:36:24

标签: c# winforms compact-framework

progressBar偶尔会停止更新(以及GUI的其余部分),并且缺少矩形部分。 这只是在目标windows-ce 5.0平板电脑设备上间歇性地看到,从不在Windows 7上。 更改progressBar.Maximum之后的progressBar.Refresh()没有帮助。 导致它的确切顺序是未知的,我无法在目标设备上运行调试器(我使用PC平台调试应用程序,但在PC上运行应用程序时从未见过这个问题)。 可能是什么导致了这个? 进度条及其关联的标签以这种方式更新。

progressBar.Value = Status.value;
label.Text = Status.value;

label.Text总是正确的。

3 个答案:

答案 0 :(得分:1)

您可以将数据回显给Label控件,尤其是

debugLabel.Text = progressBar1.Value;

这可以帮助您找到进度条的哪些值没有显示,以及它是否始终具有相同的值或随机值。

随机值会让我觉得GUI太忙而无法脱离。

相同的值会让我想到设备上的坏像素。

您还有其他数据需要提供吗?

答案 1 :(得分:0)

听起来像UI线程没有足够的量来完全绘制所需的一切。设置其值和标签文本更新后,请尝试调用Application.DoEvents

答案 2 :(得分:0)

根本原因是对gui线程之外的gui进行了更改。实际的解决方案是对System.Windows.Forms.Timer中的进度条进行所有更改。