Anchor свойство windows forms

Обновлено: 06.07.2024

В Windows Forms свойство Anchor используется для определения относительной фиксированной позиции, в которой всегда должен пребывать данный элемент управления. Каждый производный от Control тип имеет свойство Anchor, которое может принимать любое из значений перечня AnchorStyles, описанных в табл. 21.13.

Таблица 21.13. Значения AnchorStyles

Значение Описание Bottom Нижний край элемента управления прикрепляется к нижнему краю контейнера Left Левый край элемента управления прикрепляется к левому краю контейнера None Элемент управления не прикрепляется к краям контейнера Right Правый край элемента управления прикрепляется к правому краю контейнера Top Верхний край элемента управления прикрепляется к верхнему краю контейнера

Чтобы закрепить элемент в верхнем левом углу окна, можно связывать соответствующие значения операцией ИЛИ (например, AnchorStyles.Top | AnchorStyles.Left). Целью использования свойства Anchor является указание того, какие расстояния от краев элемента управления до краев контейнера должны быть фиксированы. Например, если задать для кнопки следующее значение Anchor:

// Закрепление элемента относительно правого края.

myButton.Anchor = AnchorStyles.Right;

то вы гарантируете, что при переопределении размеров формы данная кнопка будет сохранять свое положение относительно правого края формы.

Свойство content

Свойство content Это свойство используется вместе с псевдоэлементами: before и: after для генерации содержимого в документе. В примерах выше мы уже использовали это свойство. Теперь разберем его подробно.Свойство content может принимать одно из нескольких значений: строку текста,

Свойство Arguments

Свойство Arguments В следующем примере (листинг 1.1) с помощью цикла for на экран выводятся все параметры командной строки, с которыми был запущен сценарий.Листинг 1.1. Вывод на экран всех параметров сценария/*******************************************************************//* Имя:

Свойство Arguments

Свойство Arguments В листинге 1.20 приведен пример сценария, создающего ярлык на этот самый сценарий с двумя параметрами командной строки.Листинг 1.20. Создание ярлыка на выполняемый сценарий с аргументами командной строки/*****************************************************************//* Имя:

Свойство HotKey

Свойство HotKey Для того чтобы назначить ярлыку "горячую" клавишу, необходимо в свойство HotKey записать строку, содержащую названия нужных клавиш, разделенные символом "+". Замечание "Горячие" клавиши могут быть назначены только ярлыкам, которые расположены на рабочем столе

Свойство IconLocation

Свойство IconLocation Для того чтобы задать значок для ярлыка, необходимо в свойство IconLocation записать строку следующего формата: "путь, индекс". Здесь параметр путь определяет расположение файла, содержащего нужный значок, а параметр индекс — номер этого значка в файле (номера

Свойство HelpLink

Свойство HelpLink Свойства Target Site и StackTrace позволяют получить информацию о данном исключении программисту, но конечному пользователю эта информация мало что дает. Вы уже видели, что для получения информации, понятной обычному пользователю, можно использовать свойство

Свойство Data

Свойство Name

Свойство Name Приведенный выше программный код достаточно понятен, но обратите внимание на то, что класс Thread предлагает свойство с именем Name (имя). Если вы не установите для него значения, свойство Name будет возвращать пустую строку. Но, назначив данному объекту Thread в

Свойство Priority

Свойство Priority Далее заметим, что тип Thread определяет свойство с именем Priority. По умолчанию все потоки получают приоритет Normal (средний). Но вы можете изменить это значение в любой момент времени существования потока, используя свойство Priority и связанный с ним перечень

Свойство DialogResult

Свойство DialogResult В качестве заключительного задания при создании пользовательского интерфейса выберите кнопку OK в окне проектирования формы и найдите свойство DialogResult. Назначьте DialogResult.OK кнопке OK и DialogResult.Cancel – кнопке Отмена. Формально говоря, вы можете назначить

Свойство Dock

Свойство Dock Другой особенностью программирования Windows Forms является возможность задать cтыковочное поведение элементов управления. С помощью свойства Dock элемента управления можно указать, какой стороны (или каких сторон) формы должен касаться данный элемент. Значение,

Свойство IsPostBack

Свойство AutoPostBack

Свойство Name

Свойство Name Последним из рассматриваемых здесь свойств типа WebServiceAttribute является свойство Name, которое используется для указания имени Web-сервиса XML, водимого внешним пользователем. По умолчанию внешнее имя Web-сервиса идентично имени соответствующего типа класса (которым,

Свойство FormBorderStyle

Свойство FormBorderStyle Свойство FormBorderStyle определяет стиль формы. По умолчанию используется стиль FormBorderStyle.FixedSingle. При этом форма заполняет все рабочее место экрана, и пользователь не может изменять размеры формы или перемещать ее по экрану. При установке значения FormBorderStyle.None

Свойство ControlBox

Свойство ControlBox Свойство ControlBox отвечает за отображение контейнера для элемента управления. Если свойство ControlBox имеет значение True, то контейнер будет отображаться. В противном случае он на экран не выводится. Для устройств Pocket PC подобный контейнер может содержать только

Сохранение пропорций: свойства Anchor и Dock. Меню Tab Order.

В прежних версиях VB6 случайное изменение размеров формы приводило к тому, что все старания по размещению элементов на стадии конструирования шли прахом. Чтобы решить эту проблему, программисту приходилось либо самостоятельно программировать масштабирование формы, либо тратиться на специальный элемент управления. При использовании класса Windows.Forms проблема исчезает, поскольку в каждый видимый элемент добавляются два чрезвычайно полезных свойства: Anchor и Dock.

Значение свойства Anchor задается в окне свойств при помощи небольшого мини-редактора, показанного на рис. 8.3.

Иллюстрированный самоучитель по Visual Basic .NET › Формы Windows, графический вывод и печать › Сохранение пропорций: свойства Anchor и Dock. Меню Tab Order.


Рис. 8.3. Мини-редактор для свойства Anchor

Свойство Anchor привязывает элемент к одному или нескольким краям формы. В этом случае расстояние между элементом и краем остается постоянным при любых изменениях размеров контейнера. Элемент, привязанный к противоположным краям контейнера, автоматически масштабируется с изменением размеров контейнера. Ниже приведен пример кода, сгенерированного при установке свойства Anchor с привязкой элемента по левому и правому краю:

Свойство Dock обладает значительно большей гибкостью по сравнению со старым свойством Align, которое оно заменяет. Элемент, пристыкованный к краю формы, остается совмещенным с этим краем при любых изменениях размеров формы. Значение свойства Dock задается в мини-редакторе, показанном на рис. 8.4.

Иллюстрированный самоучитель по Visual Basic .NET › Формы Windows, графический вывод и печать › Сохранение пропорций: свойства Anchor и Dock. Меню Tab Order.


Рис. 8.4. Мини-редактор для свойства Dock

Если щелкнуть в центральной области, свойство Dock принимает значение Fill, при котором элемент распространяется по площади контейнера (если это возможно) и занимает такое положение при любых изменениях размеров контейнера. Заполнение контейнера не поддерживается для некоторых элементов – например, для однострочных текстовых полей, всегда имеющих определенную высоту в зависимости от используемого шрифта. При задании свойства Dock генерируется код следующего вида:

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

Растянуть элементы на форме Windows Forms

Создадим в Visual Studio проект Windows Forms и разместим на форме следующие элементы управления:

Начальный интерфейс Windows Forms

Запустим программу и с помощью мыши попробуем увеличить размеры окна, потянув правый нижний угол формы. В результате получим следующее:

Растягивание интерфейса Windows Forms

Видим, что окно формы увеличилось в размере, но элементы управления никак не реагируют на данные изменения.

Теперь покажем, как создать адаптивный к изменениям размера окна интерфейс на форме Windows Forms.

Как растянуть элементы на форме Windows Forms

В Windows Forms свойство Anchor определяет стороны контейнера (Top, Bottom, Left, Right) к которым привязывается элемент управления. При изменении размера контейнера расстояние между указанной стороной контейнера и ближайшей к ней стороне элемента управления остаётся неизменным.

Таким образом можно добиться растягивания и перемещения элементов в форме при изменении её размера.

В нашем случае контейнером для элементов управления является всё окно.

Зададим для TextBox значение атрибута Anchor = Top, Left, Right. Теперь расстояние между соответствующими сторонами ТекстБокса и окна будет неизменным. Так мы добьёмся изменения ширины контрола при изменении ширины окна.

Установка значения Anchor для TextBox

Для RichTextBox значение свойства Anchor сделаем равным Top, Bottom, Left, Right.

Установка значения Anchor для RichTextBox

У кнопки Button установим Anchor, как Top, Right.

Теперь запустим программу и изменим размер окна: увидим, что элементы управления на форме растягиваются и меняют своё местоположение. Теперь интерфейс стал адаптированным к изменению размера окна.

Чтобы решить данную проблему, необходимо указать минимальный размер формы Windows Form в пикселях. Тем самым форму будет невозможно сделать меньше установленного размера.

Щёлкнем по форме и в окне свойств изменим параметр MinimunSize. Установим его равным текущему размеру формы в визуальном редакторе (Size).

Минимальный размер формы

Компоненты в Visual Studio делятся на два типа: визуальные и невизуальные. Визуальные компоненты (метки, кнопки, поля ввода и т. д.) появляются на форме. Невизуальные компоненты (такие, как таймер) появляются на специальной панели и видимы только во время конструирования формы в виде имен со значками. Во время выполнения программы невизуальные компоненты не отображаются.


Рис. 5.10. Панель Toolbox с компонентами

Для вашего удобства все элементы управления сгруппированы по разделам. Вы можете создавать свои разделы и помещать в них любые компоненты, но для начала лучше оставить все по умолчанию, поскольку здесь все достаточно удобно продумано. В разделе All Windows Forms (Все Windows-формы) находятся все компоненты. Если вы забыли, в каком разделе искать нужный элемент управления, можете раскрыть этот раздел и найти нужный элемент в нем. Внутри разделов все компоненты отсортированы по именам.

Компоненты на форме можно перетаскивать мышью, визуально устанавливая их положение. Когда вы выделяете компонент, обратите внимание на точки, которые появляются вокруг контура выделения. В те стороны, на которых есть жирные точки, можно растягивать компонент. Например, выделите форму, и у нее на рамке выделения окажутся точки только справа и снизу. Это значит, что вы можете изменять высоту и ширину формы перемещением правого и нижнего краев формы.

Попробуйте установить на форму кнопку Button из раздела Common Controls (Общие элементы управления). Выделите ее и убедитесь, что вокруг кнопки появляются жирные точки во всех направлениях, а это значит, что с кнопкой можно делать все, что угодно.

Попробуйте теперь перетащить на форму компонент-метку Label. Выделите ее. Тут есть чему удивиться, потому что у этого компонента нет квадратов по контуру, а есть только маленький квадрат в левом верхнем углу компонента. Это значит, что у компонента нельзя изменять размеры, но можно изменять его положение. На самом деле изменять размеры можно, просто по умолчанию компонент создается в режиме авторазмера.

Все визуальные элементы управления содержат среди предков класс Control. Этот класс наделяет компоненты всеми необходимыми им свойствами и методами. Давайте пробежимся по основным свойствам компонентов, чтобы не повторяться в будущем, — тем более, что многие из них мы уже видели у формы:

  • Anchor — свойство позволяет определить, к какой стороне родительского компонента прикреплять компонент;
  • BackColor — цвет фона;
  • Cursor — курсор;
  • Dock — выравнивание;
  • Font — шрифт;
  • ForeColor — цвет переднего плана;
  • Height — высота элемента управления;
  • Left — левая позиция компонента относительно родителя;
  • Location — положение;
  • MaximumSize — максимальный размер элемента управления;
  • MinimumSize — минимальный размер элемента управления;
  • Name — название объекта, т. е. имя переменной для объекта элемента управ- ления;
  • Padding — отступы со всех сторон родительского компонента/формы;
  • Size — размер компонента: ширина и высота;
  • Top — позиция компонента по вертикали относительно родителя;
  • Visible — если равен true, то компонент виден, иначе нет;
  • Width — ширина компонента.

Несколько замечаний по поводу свойства Anchor. По умолчанию компоненты прикрепляются к левой и верхней сторонам родителя. Если прикрепить их к левой и правой, то при изменении размера формы будут изменяться и размеры компонента. Прикрепление как бы указывает, что расстояние от компонента до края формы не должно изменяться, а, значит, при изменении формы приходится изменять размеры компонента. Если прикрепить компонент только к правой стороне, то при изменении размера формы он будет двигаться вместе с правой кромкой окна как хвостик, потому что в этом случае расстояние от правой кромки до компонента не должно меняться.

Как изменять прикрепление? Выделите свойство Anchor и щелкните по кнопке вызова выпадающего списка в редакторе свойств. Появится небольшое окно (рис. 5.11), в котором от центра в разные стороны идут полоски. Темные полоски говорят о том, что в эту сторону сделано прикрепление, а белые — о том, что прикрепления нет. Щелкайте по полоскам, чтобы устанавливать или убирать прикрепления.


Рис. 5.11. Окно установки якорей


Рис. 5.12. Окно выравнивания Dock

Еще одно свойство, на котором следует остановиться: Dock. Если щелкнуть по выпадающему списку в редакторе свойств для Dock, то появится маленькое окно, которое представляет собой небольшой компонент. Он разбит на секторы, как показано на рис. 5.12, только подписей на русском у вас не будет. Эти подписи я добавил в рисунок для удобства.

Щелкая по секторам, вы выравниваете свой компонент на поверхности компонента контейнера, на котором он стоит. Например, если ваш компонент стоит на поверхности формы, и вы щелкнете по самому верхнему сектору для выравнивания по верху, то ваш компонент растянется вдоль верхней кромки окна, как это делают меню и панели в большинстве приложений. Таким способом очень просто и удобно создавать мощные и гибкие интерфейсы.

Некоторые компоненты могут прятать определенные свойства, но большинство, все же, отображает их.

Читайте также: