Таблица 21.13. Значения AnchorStyles
Значение |
Описание |
Bottom |
Нижний край элемента управления прикрепляется к нижнему краю контейнера |
Left |
Левый край элемента управления прикрепляется к левому краю контейнера |
None |
Элемент управления не прикрепляется к краям контейнера |
Right |
Правый край элемента управления прикрепляется к правому краю контейнера |
Top |
Верхний край элемента управления прикрепляется к верхнему краю контейнера |
Чтобы закрепить элемент в верхнем левом углу окна, можно связывать соответствующие значения операцией ИЛИ (например, AnchorStyles.Top | AnchorStyles.Left). Целью использования свойства Anchor является указание того, какие расстояния от краев элемента управления до краев контейнера должны быть фиксированы. Например, если задать для кнопки следующее значение Anchor:
// Закрепление элемента относительно правого края.
myButton.Anchor = AnchorStyles. Right;
то вы гарантируете, что при переопределении размеров формы данная кнопка будет сохранять свое положение относительно правого края формы.
Другой особенностью программирования Windows Forms является возможность задать cтыковочное поведение элементов управления. С помощью свойства Dock элемента управления можно указать, какой стороны (или каких сторон) формы должен касаться данный элемент. Значение, которое вы назначите свойству Dock элемента управления, учитывается вне зависимости от текущих размеров окна формы. Допустимые значения описаны в табл. 21.14.
Таблица 21.14.Значения DockStyle
Значение |
Описание |
Bottom |
Нижний край элемента управление стыкуется с нижним краем контейнерного элемента управления |
Fill |
Все края элемента управления стыкуются со всеми краями контейнерного элемента управления, и соответствующим образом изменяется размер |
Left |
Левый край элемента управления стыкуется с левым краем контейнерного элемента управления |
None |
Элемент управления не стыкуется с краем контейнерного элемента управления |
Right |
Правый край элемента управления стыкуется с правым краем контейнерного элемента управления |
Top |
Верхний край элемента управления стыкуется с верхним краем контейнерного элемента управления |
Например, если вы хотите, чтобы данный элемент всегда располагался по левому краю формы, вы должны написать следующее.
// Этот элемент всегда размещается по левому краю формы,
// независимо от текущих размеров формы.
myButton. Dock= DockStyle. Left;
Чтобы понять, во что "выливается" установка свойств Anchor и Dock, рассмотрите проект AnchoringControls, который содержится в загружаемом файле примеров для этой книги. После компоновки и запуска этого приложения вы сможете использовать его систему меню для установки различных значений AnchorStyles и DockStyle, чтобы наблюдать изменения, происходящие при этом в поведении типа Button (рис. 21.37).
Не забудьте переопределить размеры формы при изменении свойства Anchor, чтобы выяснить, как на это отвечает Button.
Исходный код.Проект AnchoringControls размещен в подкаталоге, соответствующем главе 21,
Рис. 21.37. Приложение AnchoringControls
Табличное и потоковое размещение элементов
В .NET 2.0 предлагается еще один способ управления размещением элементов управления в форме – с помощью одного из двух администраторов размещения. Типы TableLayoutPanel и FlowLayoutPanel могут использоваться в области клиента формы с целью управления размещением внутренних элементов управления. Предположим, например, что в окне проектирования формы вы поместили в форму новый элемент FlowLayoutPanel и настроили его на стыковку со всеми краями родительской формы (рис. 21.38).
Рис. 21.38. Стыковка FlowLayoutPanel в форме
В режиме проектирования формы добавьте в FlowLayoutPanel десять новых типов Button. Если теперь выполнить приложение, вы заметите, что ваши десять кнопок автоматически распределятся в форме, и это очень напоминает стандартный HTML.
С другой стороны, если вы создаете форму, содержащую TableLayoutPanel, вы можете построить пользовательский интерфейс, который будет поделен на "ячейки" (рис. 21.39).
Читать дальше