我在另一个 SplitContainer 的面板中添加了一个 SplitContainer。当拆分器移动时,一切都会重新绘制。但是,如果主SplitConainer 的大小被主窗体的最大化/恢复按钮更改,则内部SplitContainer 的大小调整将无法正常工作。
如果我移动分离器,它会重新绘制一切正常。我尝试使每个 SplitPanel SizeChanged 事件中的所有内容都无效,但没有运气。你有什么主意吗?
我在另一个 SplitContainer 的面板中添加了一个 SplitContainer。当拆分器移动时,一切都会重新绘制。但是,如果主SplitConainer 的大小被主窗体的最大化/恢复按钮更改,则内部SplitContainer 的大小调整将无法正常工作。
如果我移动分离器,它会重新绘制一切正常。我尝试使每个 SplitPanel SizeChanged 事件中的所有内容都无效,但没有运气。你有什么主意吗?
我认为这就是原因。将复杂的布局简化为几个简单的布局后,问题就消失了。
一项小调查表明,当 Windows 达到某个特定的嵌套级别时,它会停止发送 WM_SIZE。换句话说,如果您在父窗口中处理 WM_SIZE 时尝试调整它们的大小,它不会将 WM_SIZE 发送到您的子窗口。根据 USER stuff/updates/service packs,它停止传播 WM_SIZE 的最大嵌套级别可能从 15 到 31 不等,在最新的 XP 32bit/sp2 下甚至更高(实际上无法访问)。但是在 XP x64 下它仍然太少,并且在某些 Vista 版本下,其他消息仍然会发生一些类似的丑陋事情。
所以这肯定是一个 Windows 错误。