Нюансы докинга
При проектировании пользовательского интерфейса довольно удобно пользоваться свойством Dock, которое определяет способ изменения размеров элемента управления с его родительским элементом управления. Данное свойство определено в классе Control и может принимать одно из значений перечисления DockStyle:
- None — закрепление отсутствует;
- Top — элемент управления закрепляется в верхней части содержащего его элемента управления.
- Bottom — элемент управления закрепляется в нижней части содержащего его элемента управления.
- Left — элемент управления закрепляется в левой части содержащего его элемента управления.
- Right — элемент управления закрепляется в правой части содержащего его элемента управления.
- Fill — элемент управления заполнят собой всю область содержащего его элемента управления.
Так, например, при перетаскивании на форму компонента MenuStrip, его свойство Dock принимает значение Top, а для компонента StatusStrip — Bottom.
Если на вновь созданную форму последовательно поместить компоненты MenuStrip, StatusStrip и, например, DataGridView и для последнего установить свойство Dock=Fill, то получиться нечто похожее на рис. 1.
Рис. 1.
Однако, если изменить последовательность размещения компонентов на форме, то может случиться так, что компонент DataGridView со свойством Dock=Fill займет область формы, предназначенную для MenuStrip или StatusStrip, или же если программист решит добавить в программу панель инструментов ToolStrip (рис. 2.).
Рис. 2.
На рис. 2. хорошо видно, что панель инструментов закрывает часть DataGridView’а. Внимательный читатель заметить, что StatusBar поступает аналогично.
Обратимся за помощью к MSDN: «Если на одном краю закреплено несколько элементов управления, они отображаются рядом друг с другом в соответствии с их z-порядком — чем выше z-порядок, тем дальше от края контейнера располагается элемент управления». Значит, для решения проблемы необходимо изменить z-порядок. Для этого вызовем контекстное меню DataGridView и выберем пункт Bring to Front (рис. 3).
![]()
Рис. 3.
Результат не заставит себя долго ждать — DataGridView занял причитающееся ему место (рис. 4).
Рис. 4.
