Дизайнер форм
Программисты VB6 легко привыкают к особенностям работы с формами и элементами в VS .NET IDE. В вашем распоряжении оказывается пара новых (притом весьма полезных) инструментов, кратко описанных далее, однако общие принципы работы с панелью элементов (toolbox) почти не изменились.
Для читателей, никогда не работавших в старой версии VB IDE, мы кратко опишем процесс включения нового элемента в окно формы.
- Дважды щелкните на
элементе или перетащите его с панели элементов на форму.
- Расположите элемент
в нужной позиции (щелкните внутри элемента и перетащите его мышью).
- Измените размеры элемента
при помощи маленьких квадратных маркеров, показанных на рис. 8.1 (при необходимости
можно выполнить более точную настройку размеров при помощи комбинации Shift+клавиши
со стрелками).
Рис.
8.1. Маркеры изменения размеров элемента
- На панели элементов
щелкните на кнопке элемента, размещаемого на форме.
- Расположите курсор
над формой (в отличие от прежних версий VB внешний вид курсора теперь изменяется
в зависимости от выбранного элемента).
- Щелкните в точке,
где должен находиться левый верхний угол элемента, и перетащите курсор в позицию
правого нижнего угла (при необходимости размеры элемента можно изменить при
помощи комбинации Shift+клавиши со стрелками).
Позицию и размеры элементов, размещенных на форме, можно изменить командами меню Format. Некоторые команды меню Format (в частности, команды подменю Align) работают только с группами элементов. Группу можно выделить несколькими способами; например, щелкните на первом элементе группы, а затем, удерживая нажатой клавишу Shift, последовательно щелкайте на всех остальных элементах, включаемых в группу. Рядом со всеми выделенными элементами появляются маркеры изменения размеров, но лишь у одного элемента они будут темными, как у кнопки на рис. 8.2.
Элемент с темными маркерами используется в качестве эталона при выполнении команд меню Format — например, Format > Make Same Width > Width. При ручном масштабировании все элементы в группе изменяются пропорционально независимо от того, какой элемент выбран эталонным.
Рис.
8.2. Объединение элементов в группы
Сохранение
пропорций: свойства Anchor и Dock
Значение свойства Anchor задается в окне свойств при помощи небольшого мини-редактора, показанного на рис. 8.3.
Свойство Anchor привязывает элемент к одному или нескольким краям формы. В этом случае расстояние между элементом и краем остается постоянным при любых изменениях размеров контейнера. Элемент, привязанный к противоположным краям контейнера, автоматически масштабируется с изменением размеров контейнера. Ниже приведен пример кода, сгенерированного при установке свойства Anchor с привязкой элемента по левому и правому краю:
Me.Button1.Anchor = (System.Windows.Forms.AnchorStyles.Left _ Or System.Windows.Forms.AnchorStyles.Right)
Свойство Dock обладает значительно большей гибкостью по сравнению со старым свойством Al ign, которое оно заменяет. Элемент, пристыкованный к краю формы, остается совмещенным с этим краем при любых изменениях размеров формы. Значение свойства Dock задается в мини-редакторе, показанном на рис. 8.4.
Рис.
8.3. Мини-редактор для свойства Anchor
Рис.
8.4. Мини-редактор для свойства Dock
При стыковке нескольких элементов с одним краем контейнера первый элемент совмещается с краем, а остальные располагаются как можно ближе к нему, не перекрывая предыдущие элементы, как показано на рис. 8.5.
Поскольку и стыковка, и привязка выполняются по отношению к контейнеру, вы можете сначала стыковать/привязать групповые поля (GroupBox) или панели к краям формы, а затем проделать то же самое с элементами внутри этих контейнеров. Как правило, необходимость в программировании изменения размеров при этом пропадает. Например, в процессе построения формы, показанной на рис. 8.6, три групповых поля были пристыкованы к левому краю формы, после чего три кнопки были пристыкованы к нижнему краю первого группового поля.
Рис. 8.5. Стыковка элементов с краем формы
Рис.
8.6. Будущий калькулятор
Изменение порядка перебора элементов (tab order) в прежних версиях VB было делом утомительным и неприятным, которое несколько упрощалось только специальной надстройкой (add-in). В VB .NET существует команда View > Tab Order, которая делает эту задачу элементарной. Все, что от вас потребуется, — ввести нужную позицию элемента в небольшом поле, которое при выполнении команды View > Tab Order появляется рядом с элементом (рис. 8.7). Для элементов, находящихся внутри контейнера, позиция задается в формате «х.у». Например, если групповому полю в порядке перебора была присвоена позиция 3, то расположенные внутри него элементы будут иметь номера 3.0, 3.1 и т. д. (чтобы отключить режим ввода порядка перебора, снова выполните команду Tab Order).
Рис.
8.7. Команда Tab Order