1

多くの DevExpress 要素を含む WinForms ダイアログがあります。フォームには、いくつかの SplitContainers と TextEdit 要素と DevExpress XtraGrid コントロールがあります。

すべてのコントロールは Dock=Fill で、ツールバーの場合は Dock=Top です。

フォームのサイズを変更すると、すべての要素が再レイアウトされず、次の結果が得られます: http://dl.dropbox.com/u/51344/winforms1.png

SplitContainers の 1 つを手動でサイズ変更するまで、フォームは再レイアウトされず、すべてが正常に戻ります ( http://dl.dropbox.com/u/51344/winforms2.png )。

フォームの OnResize イベントで見つけることができる「PerformLayout、Refresh、Redraw」関数をすべて呼び出そうとしましたが、うまくいきませんでした。

この問題は、RemoteDesktop で実行すると、さらに悪いレイアウトの問題を引き起こします。

この問題をデバッグする方法を知っている人はいますか?


編集:

私は自分の質問に答えるのが嫌いで、数日間オンとオフで戦っています。この見苦しいコードはうまくいくようです。splitcontainers のサイズを 1 ピクセルずつ変更して、再レイアウトを強制します。

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

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

0 に答える 0