为什么WinForms有时无法绘画?

时间:2011-08-08 17:10:16

标签: c# winforms

我负责支持winforms应用程序,偶尔应用程序无法正确绘制。有时数字更新只是灰色(默认控件颜色),但它们仍然可以工作。其他时候某些按钮无法正确绘制。

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

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

所以,问题是,为什么WinForms有时无法绘制?我应该关注某些事情吗?

2 个答案:

答案 0 :(得分:4)

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

因此,当您通过查询数据库来阻止UI线程时,读取文件或任何需要花费更多时间的事情都会被忽视,那时UI将不会更新。

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

答案 1 :(得分:0)

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