【发布时间】:2010-10-27 16:26:10
【问题描述】:
在 WindowsCE 平台(自定义构建)上,我们的 C# gui 使用常规表单来显示“弹出菜单”。 我们将 FormBorderstyle 设置为 None,因为我们不希望表单控件可见。
一段时间后,一些客户报告“灰色框”。 在这里进行一些测试后,我们可以很快地重现该问题。当我们不断打开 2 个不同的菜单(表单)时,平台会向我们显示本机异常。
错误
发生本机异常 在 Tiger.CEHost.exe 中。选择退出并 然后重新启动该程序,或选择 详情了解详情。
详情:
错误
异常代码:0xC0000005
异常地址:0x00000001
读取:0x00000001在 WL.SetSTyle(IntPtr hwnThis, UInt32 dwMask, UInt32 dwStyle)
在 Form._SetBorderStyle(AGL_WINDOWSTYLE wstyVal, AGL_WINDOWSTYLE wstyMask)
在 Form.set_FormBorderStyle(FormBorderStyle 值)
在 pDropDown.PopupForm.Show()
在 pDropDown.Show()
在 pButton.ShowHideDropDown()
在 pButton.OnClick(EventArgs e)
在 Control.WnProc(WM wm, Int32 wParam, Int32 lParam)
在 Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
在 EVL.EnterMainLoop(IntPtr hwnMain)
在 Application.Run(Form fm)
在 Program.Main(String[] args)
FormBorderStyle 属性似乎总是失败。我们已经尝试删除所有 pInvokes,因为可能会覆盖一些内存,但这没有帮助。
我们还记录对 Show 方法的每次调用,每次调用都是在 gui 线程中进行的,并且 Form 包含一个有效的句柄。
【问题讨论】:
标签: c# winforms compact-framework formborderstyle