我有一个软件在许多机器上运行良好,虽然在一台机器上有一个问题似乎偶尔会发生,但MenuStrip和ToolStrip都显示为一个空白的白色背景,上面有一个红叉,如如果您创建了一个空对象,则会使用自定义控件。这在我调试时不会发生,我不知道如何重新发生问题,但它确实发生了。我想知道是否有人知道这可能是什么问题?

它是.NET框架的版本吗?

由于

有帮助吗?

解决方案

当存在GDI +问题时(“死亡的红色X”),这是常见的事情。你在 OnPaint 中做任何自定义绘图吗?或者也许有图形资源或字形腐败或被错误处置。

修改:我重新阅读了您的问题。你似乎只在其中一台机器上有这个。我已经用Google搜索了一下,我偶然发现了这个旧帖子。底部的帖子表明虚拟内存可能存在问题:

  

我们确实设法解决了这个问题 - 我们是   在运行的设备上看到问题   XP嵌入式。 XPe图像开发人员   已关闭虚拟内存和   我们就把问题转过来了   走了。我相信这只是一个   系统运行的症状   内存来显示图形(也许   特别是如果你使用了很多   双缓冲)

希望有所帮助。

其他提示

听起来像 Out of Memory Exception 对我来说。

修改 有时会导致 System.InvalidOperationException:BufferedGraphicsContext

您是否尝试从GUI线程以外的线程更新GUI控件?将交叉线程操作与吞噬所有内容的异常处理程序相结合,我们在我正在维护的应用程序上有你描述的行为(在网格控件上,而不是menustrip条)。

最终听起来像是一个跨线程的问题。

确保在从不是主UI线程的线程访问控件和/或触发事件时使用Invoke。

只有一台拥有我们产品的1000多台电脑才能看到这种情况。 在那台计算机上,我看到.NET 3.5程序偶尔在其数据网格上显示红色X.另一个更简单的.NET 2.0程序在其menuStrip上获得了红色X.我只有简单程序的源代码,但我可以说根本没有任何影响该组件的用户代码。没有跨线程的东西,因为没有更新它。它的内容是在开发时设置的,在程序加载时添加了一个项目。程序加载后Red X失败很好。

我很惊讶地发现两个不同框架和一个没有数据绑定的程序存在问题。我非常希望电脑的虚拟内存关闭。

如果不是那样的话,那么对于在.NET 2.0和.NET 3.5中共享的系统部分的任何指导都将不胜感激。

更新:有问题的用户退出计算机并替换它(解决了问题)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top