2011-08-08 46 views
0

我负责支持winforms应用程序,偶尔应用程序不能正确绘制。有时数字下移将只是灰色(默认的控制颜色),但它们仍然可以工作。其他时候,某些按钮将无法正确绘制。为什么WinForms偶尔无法绘制?

我们没有写任何自定义绘画代码,没有GDI +,nada。因此,AFAIK,一切都应该由Windows处理。

问题是,门票会出现未正确渲染的应用程序部分的照片,我不知道如何开始调试它们,因为我不知道可能会出现什么问题。

所以,问题是,为什么WinForms有时无法绘制?有什么我应该看的东西?

+3

WinForms很少不痛苦。 – CodesInChaos

回答

4

在Winforms中,UI和逻辑通常在SAME线程上执行。

因此,当通过查询数据库来阻止UI线程时,读取文件或其他需要的时间比可以忽略的时间更长,那时UI将不会被更新。

另一个原因可能是线程根本没有时间执行,因为其他线程具有更高的优先级并且在CPU上占用时间。

+0

这在短期内很有意义,但有时这些问题会持续几十分钟。 –

+0

@Jonathan Beerhalter,不过,我在答案中提到的是它应该如何工作。总是有一个原因,为什么UI不更新,我给出的原因是官方的。所有其他人都是错误的,我很难列出。 –

+0

但是你所说的不起作用,因为UI线程没有被锁定,并且它从不画UI的某些部分。我希望出于某些原因,为什么会发生这种情况,而不是UI开发技巧101. –

0

除了Erno所说的之外,我还补充说我有一些奇怪的问题,当我正在使用的一个winforms应用程序对我的控件中常见的一些图像使用透明度颜色时。如果您的应用程序使用任何图像,并且您已设置按钮或控件正在使用的透明度颜色,则会发生奇怪的事情。

相关问题