1

我有一个 WinForms 对话框,上面有很多 DevExpress 元素。该表单有几个SplitContainers 和一个TextEdit 元素和DevExpress XtraGrid 控件。

所有控件都为 Dock=Fill,或者在工具栏的情况下为 Dock=Top。

当我调整表单大小时,它不会重新布局所有元素,结果如下:http://dl.dropbox.com/u/51344/winforms1.png

直到我手动调整其中一个 SplitContainers 的大小,表单重新布局并且一切都恢复正常(http://dl.dropbox.com/u/51344/winforms2.png)。

我尝试调用在表单的 OnResize 事件中可以找到的所有“PerformLayout、Refresh、Redraw”函数,但没有成功。

在 RemoteDesktop 中运行时,该问题会导致更严重的布局问题。

有谁知道如何调试这个问题?


编辑:

我讨厌回答我自己的问题,几天来一直在与这个问题作斗争。这段丑陋的代码似乎可以解决问题。将拆分容器的大小调整一个像素以强制重新布局:

splitContainerControlQuery1.SplitterPosition += (splitContainerControlQuery1.SplitterPosition % 2 == 1) ? 1 : -1;

splitContainerControlQuery2.SplitterPosition += (splitContainerControlQuery2.SplitterPosition % 2 == 1) ? 1 : -1;
4

0 回答 0