Проблемы с расположением док-станции в WinForms + Devexpress - PullRequest
1 голос
/ 05 мая 2011

У меня есть диалоговое окно 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).

Я попытался вызвать все функции «PerformLayout, Refresh, Redraw», которые я смог найти в событии OnResize формы, но безуспешно.

Эта проблема приводит к еще худшим проблемам с макетом при запуске в RemoteDesktop.

У кого-нибудь есть идеи, как отладить эту проблему?


Edit:

Ненавижу отвечать на свой вопрос, несколько дней боролся с этим. Этот уродливый кусок кода, кажется, делает свое дело. Измените размер разделенных контейнеров на один пиксель, чтобы изменить расположение:

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

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