多くの 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;