Управление формами Windows
Организация элементов управления в форме
Когда вы программно добавляете в форму элементы управления, то чтобы правильно разместить их, необходимо использовать метод проб и ошибок. В этом случае Конструктор Windows Forms вам не поможет - только координаты (x, y) свойств Location и Size, значения которых совсем неочевидны, если у вас нет хорошего двухмерного воображения или времени на многократные запуски программы для проверки размещения объектов.
К счастью Visual Basic .NET содержит несколько свойств, которые позволяют организовать объекты в форме во время выполнения. Они включают свойство Anchor, которое заставляет объект на форме оставаться на одном и том же расстоянии от указанного края формы, и свойство Dock, которое заставляет объект оставаться прикрепленным к одному из краев формы. Свойства Anchor и Dock можно использовать при проектировании, но я обнаружил, что они также очень полезны при программном расположении объектов во время выполнения. В следующем упражнении показано, как работают эти свойства.
Закрепление и пристыковка объектов во время выполнения
- Щелкните на команде Close Solution (Закрыть решение) в меню File (Файл), а затем создайте в папке c:\vbnet03sbs\Гл.15 новый проект с именем My Anchor and Dock.
- Отобразите форму.
- Щелкните на элементе управления PictureBox, а затем добавьте по центру верхней части формы объект области вывода изображений.
- Используйте элемент управления TextBox и создайте текстовое поле.
- Установите свойство Multiline этого текстового поля на значение True, чтобы можно было изменить размер этого объекта.
- Измените размер объекта текстового поля так, чтобы он заполнял почти все пространство нижней половины формы.
- Щелкните на элементе управления Button и добавьте в нижнем правом углу формы объект кнопки.
-
Установите для формы и ее объектов следующие свойства:
Объект Свойство Установка PictureBox1 Image "c:\vbnet03sbs\Гл.16\sun.ico" SizeMode StretchImage Button1 Text "Разместить" Form1 Text "Примеры Anchor и Dock" Ваша формы должна выглядеть примерно так.
- Чтобы открыть в Редакторе кода процедуру события Button1_Click, сделайте двойной щелчок мышью на кнопке Разместить.
-
Введите следующий код программы:
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 я закрепляю относительно нижнего и правого краев формы.
-
Чтобы запустить программу, щелкните на кнопке Start (Начать).
Примечание. Готовая программа Anchor and Dock лежит в папке c:\vbnet03sbs\Гл.15\anchor and dock.Появится форма, имеющая разработанный вами вид.
- Переместите указатель мыши в нижний левый угол формы так, чтобы он изменился на указатель изменения размера, а затем увеличьте размер формы. Обратите внимание, что размер и положение объектов в форме не изменились.
- Верните форме ее первоначальный размер.
-
Щелкните на кнопке Разместить формы. Объект области вывода изображений будет прикреплен к верхнему краю формы. Размер области вывода изображений также изменится, и ее края прилипнут к левому и правому краям формы, как показано ниже.
Обратите внимание, что значок, выведенный в области изображений, искажен, что является результатом процесса прикрепления.
-
Снова увеличьте размер формы. Когда вы будете изменять размер формы, область вывода изображений и объект текстового поля также будут менять свои размеры. Так как текстовое поле закреплено по всем четырем сторонам, расстояние между краями формы и текстового поля остаются постоянными. При изменении размера становится ясно, что объект кнопки меняет свое положение. Хотя расстояние между объектом кнопки и верхним и левым краями формы меняется, расстояние до нижнего и правого краев остается неизменным, как показано здесь.
- Немного поэкспериментируйте со свойствами Anchor и Dock. Когда закончите, щелкните на кнопке Закрыть формы, чтобы закрыть программу.
Теперь у вас есть необходимые навыки, чтобы добавлять в проект новые формы, размещать их на рабочем столе Windows, заполнять их новыми элементами управления и размещать эти элементы управления с помощью кода программы. Вы получили большой опыт, связанный с работой с новыми формами в программе на Visual Basic.