При проектировании пользовательского интерфейса довольно удобно пользоваться свойством Dock, которое определяет способ изменения размеров элемента управления с его родительским элементом управления. Данное свойство определено в классе Control и может принимать одно из значений перечисления DockStyle:

  • None — закрепление отсутствует;
  • Top — элемент управления закрепляется в верхней части содержащего его элемента управления.
  • Bottom — элемент управления закрепляется в нижней части содержащего его элемента управления.
  • Left — элемент управления закрепляется в левой части содержащего его элемента управления.
  • Right — элемент управления закрепляется в правой части содержащего его элемента управления.
  • Fill — элемент управления заполнят собой всю область содержащего его элемента управления.

Так, например, при перетаскивании на форму компонента MenuStrip, его свойство Dock принимает значение Top, а для компонента StatusStrip — Bottom.

Если на вновь созданную форму последовательно поместить компоненты MenuStrip, StatusStrip и, например, DataGridView и для последнего установить свойство Dock=Fill, то получиться нечто похожее на рис. 1.

clip_image002[8]

Рис. 1.

Однако, если изменить последовательность размещения компонентов на форме, то может случиться так, что компонент DataGridView со свойством Dock=Fill займет область формы, предназначенную для MenuStrip или StatusStrip, или же если программист решит добавить в программу панель инструментов ToolStrip (рис. 2.).

clip_image002

Рис. 2.

На рис. 2. хорошо видно, что панель инструментов закрывает часть DataGridView’а. Внимательный читатель заметить, что StatusBar поступает аналогично.

Обратимся за помощью к MSDN: «Если на одном краю закреплено несколько элементов управления, они отображаются рядом друг с другом в соответствии с их z-порядком — чем выше z-порядок, тем дальше от края контейнера располагается элемент управления». Значит, для решения проблемы необходимо изменить z-порядок. Для этого вызовем контекстное меню DataGridView и выберем пункт Bring to Front (рис. 3).

clip_image002[4]

Рис. 3.

Результат не заставит себя долго ждать — DataGridView занял причитающееся ему место (рис. 4).

clip_image002[6]

Рис. 4.