仅在1台PC上从Windows窗体中删除控件。如何解决问题?

时间:2017-11-27 15:03:08

标签: c# winforms debugging

我有一个C#Windows窗体应用程序,可以在25多台不同的PC上正常显示。但是在一台PC上,表单中缺少几个控件 - 好像将visible属性设置为false(但事实并非如此)。缺少的控件包括列表框,文本框和按钮。同一表单上的其他控件可正确显示,并包含一些标签,文本框和datagridview。所有这些控件(缺少的控件和正确显示的控件)都驻留在嵌套的splitcontainer中。应用程序已卸载并重新安装多次。 PC安装了所有最新的驱动程序和Windows更新。

如何继续调试这样一个不寻常的错误?有人有主意吗?许多Google搜索都没有帮助。

1 个答案:

答案 0 :(得分:0)

正如我在问题中提到的,我已经嵌套了SplitContainers。显然,对于众多嵌套(Panel和SplitContainer)控件,由于许多定位命令被发送到每个嵌套控件,线程可能耗尽内核堆栈空间,并且控件的定位无声地失败。这是发生在我身上的事情。我的表单有6个SplitContainers以这种或那种方式嵌套。

我按照指南Creating Js object with Object.create(null)?覆盖了嵌套容器控件的OnSizeChanged事件,它完全解决了我的问题。我只覆盖了第6个SplitContainer,并使用Windows SplitContainer控件(如文章中所建议的那样)离开了另外5个。

尽管如此,我发现它只是在一台电脑上发生这种情况并不常见,那台电脑是昂贵的Sager笔记本电脑,配有非常高端的显卡。

here