Определяет изменение Местоположения (координат) и/или Размеров данного Объекта при изменении Размеров Родительского Контейнера, который содержит рассматриваемый Объект. Чтение / Запись для режимов Разработки (Design-Time) и Выполнения (Run-Time).
Control.Anchor [= nValue] |
Возвращаемое
значение
- nValue
-
Определяет составное (по-битовое) Значение, характеризующее различные варианты изменения Местоположения и Размеров данного Контрола.
В следующей Таблице приводится Описание возможных значений для составных частей параметра nValue.
Позиция Значение
Бита (части)Номер
Бита
(части)Противоречит
ЗначениямКраткое Описание Top Left
0
Местоположение и Размеры контрола не изменяются относительно Левой и Верхней границ родительского Контейнера (По-умолчанию). (Верхний-Левый Якорь)
Top Absolute
+1
0
16, 512
Местоположение Контрола не изменяется относительно Верхней границы Родительского Контейнера. (Верхний Якорь)
Left Absolute
+2
1
32, 256
Местоположение Контрола не изменяется относительно Левой границы Родительского Контейнера. (Левый Якорь)
Bottom Absolute
+4
2
64, 512
Местоположение Контрола не изменяется относительно Нижней границы Родительского Контейнера. (Нижний Якорь)
Right Absolute
+8
3
128, 256
Местоположение Контрола не изменяется относительно Правой границы Родительского Контейнера. (Правый Якорь)
Top Relative
+16
4
1, 512
Местоположение контрола изменяется Пропорционально относительно Верхней Границы родительского Контейнера.
Left Relative
+32
5
2, 256
Местоположение контрола изменяется Пропорционально относительно Левой Границы родительского Контейнера.
Bottom Relative
+64
6
4, 512
Местоположение контрола изменяется Пропорционально относительно Нижней Границы родительского Контейнера.
Right Relative
+128
7
8, 256
Местоположение контрола изменяется Пропорционально относительно Правой Границы родительского Контейнера.
Horizontal Fixed Size
+256
8
2, 8, 32, 128
Горизонтальное Центрирование Контрола, Размеры Контрола не изменяются.
Vertical Fixed Size
+512
9
1, 4, 16, 64
Вертикальное Центрирование Контрола, Размеры Контрола не изменяются.
Далее приводятся Примеры, описывающие общие случаи использования значений рассматриваемого Свойства Anchor.
Тип Контрола Значение
nValueКраткое Описание TextBox / EditBox
10
Горизонтальное растяжение (сжатие) Объекта при изменении размеров Родительского Контейнера.
CommandButton
12
Для размещения двух Контролов типа <OK> и <Отмена>, в Нижнем-Правом углу Контейнера.
CommandButton
128 и 32
Центрирование двух Кнопок, Левой и Правой.
CommandButton
260
Центрирование Контрола, размещенного в нижней части Формы.
Комментарии
Применяется В: CheckBox Control | ComboBox Control | CommandButton Control | CommandGroup Control | Container Object | Control Object (Visual FoxPro) | EditBox Control | Grid Control | Image Control (Visual FoxPro) | Label Control (Visual FoxPro) | Line Control | ListBox Control | OLE Bound Control | OLE Container Control | OptionButton Control | OptionGroup Control | PageFrame Control | Shape Control | Spinner Control | TextBox Control (Visual FoxPro)
Привязка (Anchoring) основывается на исходных Координатах рассматриваемого Контрола в тот момент, когда определяется требуемое значение для свойства Anchor; обычно это происходит при создании экземпляра данного Контрола, его инициализации. Привязка не учитывает текущую позицию Контрола (его текущее местоположение). Следовательно, даже после того как вы переместите рассматриваемый Контрол, механизм Привязки использует начальные Координаты Контрола. Данные размышления объясняют отличие между схожими значениями для свойства Anchor: = 0 или = 3 (+1+2).
Например, предположим, что на Форме расположена Кнопка типа CommandButton, для нее установлено значение свойства Anchor = 3. При размещении в программном Коде события Click следующего фрагмента: (Попытка Программного перемещения Кнопки в правую сторону)
![]() |
|
---|---|
This.Left = This.Left + 10 |
Однако, когда вы изменяете размеры Формы, рассматриваемый Контрол (Кнопка) возвращается в свою начальную позицию.
![]() |
---|
Если вам требуется выполнять Привязку Контрола на основе текущих Координат (после перемещения его, как указано в примере), рекомендуется сначала выполнить Anchor = 0, а после этого выполнить Anchor = 3. Если использовать предположения рассматриваемого Примера, то в программный Код события Click можно поместить следующий Фрагмент: |
![]() |
|
---|---|
Local Tmp1 |
Значения свойства Anchor рассматриваемых Контролов подчиняется Родительским Контейнерам:
Значения свойства Anchor игнорируется для Контролов, помещенных в Контейнеры типа ToolBar или Column.
Вы можете изменять Размеры Элементов Управления (Контролов), в этом случае должны быть установлены соответствующие значения для противоположных границ Контрола; например, Значения для Левого и Правого края, или для Верхнего и Нижнего края. Если определить только значение для одного края, то данный контрол можно только Переместить, а размеры Контрола не изменяются
Если вы не устанавливаете Биты одной из Координатных Осей (вертикальной или Горизонтальной), то при изменении размеров родительского Контейнера координаты соответствующей Оси Контрола - Не изменяются. Например, значения для Свойства Anchor = 1, 3, 5, 7, или 10 влияют только на верхний и нижний края Контрола, а по горизонтали изменений не происходит.
Примечание Переводчика: При разработке пользовательской Формы, для установки значения свойства Anchor можно использовать соответствующий Редактор: Anchor Editor, смотрите далее
Вы не можете устанавливать значения Битов, которые противоречат друг - другу. Это относится к следующим Примерам:
-
Недопустима Абсолютная и Относительная Привязка к одной и той же границе, nValue = 17 (+1+16).
-
Недопустима комбинация Фиксированного размера Контрола по одной из координатных Осей и привязка к краю по той же Оси nValue = 258 (+2+256), или 513 (+1+512)., противоречие - очевидно, смотрите Таблицу выше.