我有一个C# Windows窗体应用程序,可以在25+不同的PC上正确显示。但是在一台PC上,表单中缺少了几个控件--就好像可见属性被设置为false (但它不是)。缺少的控件包括一个列表框、文本框和一个按钮。相同窗体上的其他控件正确显示,包括一些标签、文本框和数据视图。所有这些控件(丢失的控件和正确显示的控件)都驻留在嵌套的拆分容器中。应用程序已多次卸载和重新安装。PC已经安装了所有最新的驱动程序和Windows更新。
如何继续调试这样一个不寻常的bug?有人有什么想法吗?大量的谷歌搜索结果都没有帮助。
发布于 2017-12-12 16:52:19
正如我在问题中提到的,我嵌套了SplitContainers。显然,对于众多嵌套的(面板和SplitContainer)控件,由于向每个嵌套控件发送了许多定位命令,线程可能会耗尽内核堆栈空间,而控件的定位则会悄悄地失败。这就是我身上发生的事。我的表单有6个SplitContainers以这样或那样的方式嵌套。
我遵循指导这里来重写嵌套容器控件的OnSizeChanged事件,它完全解决了我的问题。我只覆盖了第6个SplitContainer,而剩下的5个使用了控件(如本文中所建议的)。
尽管如此,我仍然发现这是不寻常的,它只发生在一台PC上,而且PC是一台价格昂贵的带有高端显卡的Sager笔记本电脑。
https://stackoverflow.com/questions/47513969
复制相似问题