Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3927 / 218 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 16:

Управление формами Windows

Организация элементов управления в форме

Когда вы программно добавляете в форму элементы управления, то чтобы правильно разместить их, необходимо использовать метод проб и ошибок. В этом случае Конструктор Windows Forms вам не поможет - только координаты (x, y) свойств Location и Size, значения которых совсем неочевидны, если у вас нет хорошего двухмерного воображения или времени на многократные запуски программы для проверки размещения объектов.

К счастью Visual Basic .NET содержит несколько свойств, которые позволяют организовать объекты в форме во время выполнения. Они включают свойство Anchor, которое заставляет объект на форме оставаться на одном и том же расстоянии от указанного края формы, и свойство Dock, которое заставляет объект оставаться прикрепленным к одному из краев формы. Свойства Anchor и Dock можно использовать при проектировании, но я обнаружил, что они также очень полезны при программном расположении объектов во время выполнения. В следующем упражнении показано, как работают эти свойства.

Закрепление и пристыковка объектов во время выполнения

  1. Щелкните на команде Close Solution (Закрыть решение) в меню File (Файл), а затем создайте в папке c:\vbnet03sbs\Гл.15 новый проект с именем My Anchor and Dock.
  2. Отобразите форму.
  3. Щелкните на элементе управления PictureBox, а затем добавьте по центру верхней части формы объект области вывода изображений.
  4. Используйте элемент управления TextBox и создайте текстовое поле.
  5. Установите свойство Multiline этого текстового поля на значение True, чтобы можно было изменить размер этого объекта.
  6. Измените размер объекта текстового поля так, чтобы он заполнял почти все пространство нижней половины формы.
  7. Щелкните на элементе управления Button и добавьте в нижнем правом углу формы объект кнопки.
  8. Установите для формы и ее объектов следующие свойства:

    Объект Свойство Установка
    PictureBox1 Image "c:\vbnet03sbs\Гл.16\sun.ico"
    SizeMode StretchImage
    Button1 Text "Разместить"
    Form1 Text "Примеры Anchor и Dock"

    Ваша формы должна выглядеть примерно так.


  9. Чтобы открыть в Редакторе кода процедуру события Button1_Click, сделайте двойной щелчок мышью на кнопке Разместить.
  10. Введите следующий код программы:

    PictureBox1.Dock = DockStyle.Top
    TextBox1.Anchor = AnchorStyles.Bottom Or _
    AnchorStyles.Left Or AnchorStyles.Right Or _
    AnchorStyles.Top
    Button1.Anchor = AnchorStyles.Bottom Or _
    AnchorStyles.Right

    Когда выполняется эта процедура события, свойство Dock объекта PictureBox1 используется для пристыковки области изображения к верхней части формы. Это заставляет верхний край объекта области изображения прикоснуться и "прилипнуть" к верхнему краю формы - почти так, как работает собственная функция среды разработки Visual Studio. Единственное удивительное в поведении объекта здесь то, что объект области вывода изображений также изменяет свой размер так, что его края прилипают к левому и правому краям формы. В следующих шагах вы увидите это поведение.

    Далее используется свойство Anchor для объектов TextBox1 и Button1. Свойство Anchor будет поддерживать текущее расстояние от указанных краев формы, даже если размер формы буде меняться. Заметьте, что свойство Anchor поддерживает текущее расстояние от объекта для указанных краев формы - оно не прикрепляет объект к указанному краю, если он к нему уже не прикреплен. В этом примере указано, что объект TextBox1 должен быть зафиксирован по всем расстояниям от краев формы (сверху, снизу, слева и справа). Для объединения выбора краев я использую оператор Or. Объект Button1 я закрепляю относительно нижнего и правого краев формы.

  11. Чтобы запустить программу, щелкните на кнопке Start (Начать).

    Примечание. Готовая программа Anchor and Dock лежит в папке c:\vbnet03sbs\Гл.15\anchor and dock.

    Появится форма, имеющая разработанный вами вид.

  12. Переместите указатель мыши в нижний левый угол формы так, чтобы он изменился на указатель изменения размера, а затем увеличьте размер формы. Обратите внимание, что размер и положение объектов в форме не изменились.
  13. Верните форме ее первоначальный размер.
  14. Щелкните на кнопке Разместить формы. Объект области вывода изображений будет прикреплен к верхнему краю формы. Размер области вывода изображений также изменится, и ее края прилипнут к левому и правому краям формы, как показано ниже.


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

  15. Снова увеличьте размер формы. Когда вы будете изменять размер формы, область вывода изображений и объект текстового поля также будут менять свои размеры. Так как текстовое поле закреплено по всем четырем сторонам, расстояние между краями формы и текстового поля остаются постоянными. При изменении размера становится ясно, что объект кнопки меняет свое положение. Хотя расстояние между объектом кнопки и верхним и левым краями формы меняется, расстояние до нижнего и правого краев остается неизменным, как показано здесь.


  16. Немного поэкспериментируйте со свойствами Anchor и Dock. Когда закончите, щелкните на кнопке Закрыть формы, чтобы закрыть программу.

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

Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Светлана Ведяева
Светлана Ведяева
Россия, Саратов