【发布时间】:2012-05-22 19:47:38
【问题描述】:
在 Motorola MC3100(仅限 CE 6.0 版本)上退出我的 .NET CF 3.5 应用程序时,我收到错误消息“应用程序 xxx 遇到严重错误,需要关闭”。然后我需要热启动设备以使应用程序再次运行。
此代码在应用程序关闭之前可以正常工作,并且只有在应用程序中的控件上设置了字体时才会失败。一切在 .NET CF 2.0 以及我用 .NET CF 3.5 尝试过的所有其他 Motorola、Intermec、Psion、HHC 设备上也能正常工作。
这是我当前的测试代码:
[MTAThread]
static void Main()
{
Control oCtrl = new Control();
oCtrl.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
// Setting the controls font to null works
// oCtrl.Font = null; Works
// Setting the Control to null does not work, still get error
// oCtrl = null; Doesn't work
// Setting a font, not on a control, also works fine.
// System.Drawing.Font font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold);
}
我看到了一些似乎相关的链接:
但到目前为止,我发现的唯一建议是消除应用程序中的字体。在这种情况下,设置字体的地方太多了,包括链接的程序集,这是不可能的。
有没有其他人见过这样的事情。这似乎与这些版本上没有正确处理字体的控件有关。
【问题讨论】:
-
我假设如果您将该代码移动到通过 Application.Run 启动的简单表单中,它仍然存在这个问题吗?
-
是的。我从完整的应用程序开始,并精简了代码,直到我将问题隔离到这几行。
-
经过数小时的调试后,我现在处于同一点。您找到问题的解决方案了吗?
-
到目前为止,我最好的解决方案是将 rev 恢复到 CF 2.0。
标签: c# .net compact-framework windows-ce