Cамоучитель по VB.NET

Продажа аппаратов lpg на сайте http://ilpg.ru. | Официальное зеркало, фриспины нередкие гости в казино х.


 

Дизайнер форм


Программисты VB6 легко привыкают к особенностям работы с формами и элементами в VS .NET IDE. В вашем распоряжении оказывается пара новых (притом весьма полезных) инструментов, кратко описанных далее, однако общие принципы работы с панелью элементов (toolbox) почти не изменились.

Для читателей, никогда не работавших в старой версии VB IDE, мы кратко опишем процесс включения нового элемента в окно формы.

  1. Дважды щелкните на элементе или перетащите его с панели элементов на форму.
  2. Расположите элемент в нужной позиции (щелкните внутри элемента и перетащите его мышью).
  3. Измените размеры элемента при помощи маленьких квадратных маркеров, показанных на рис. 8.1 (при необходимости можно выполнить более точную настройку размеров при помощи комбинации Shift+клавиши со стрелками).

Рис. 8.1. Маркеры изменения размеров элемента

Существует и другой способ размещения элементов на форме:

  1. На панели элементов щелкните на кнопке элемента, размещаемого на форме.
  2. Расположите курсор над формой (в отличие от прежних версий VB внешний вид курсора теперь изменяется в зависимости от выбранного элемента).
  3. Щелкните в точке, где должен находиться левый верхний угол элемента, и перетащите курсор в позицию правого нижнего угла (при необходимости размеры элемента можно изменить при помощи комбинации Shift+клавиши со стрелками).
Если элемент не имеет пользовательского интерфейса (к этой категории относятся, например, таймеры), дважды щелкните на нем. Элемент размещается в специальной области под формой и не мешает размещению других элементов.

В процессе построения формы в IDE прежде всего необходимо помнить о том, что IDE автоматически генерирует довольно большой объем кода. В отличие от прежних версий VB, все ваши действия в дизайнере форм и в окне свойств воспроизводятся в виде сгенерированного кода, который можно просмотреть (а при необходимости и отредактировать).

Позицию и размеры элементов, размещенных на форме, можно изменить командами меню Format. Некоторые команды меню Format (в частности, команды подменю Align) работают только с группами элементов. Группу можно выделить несколькими способами; например, щелкните на первом элементе группы, а затем, удерживая нажатой клавишу Shift, последовательно щелкайте на всех остальных элементах, включаемых в группу. Рядом со всеми выделенными элементами появляются маркеры изменения размеров, но лишь у одного элемента они будут темными, как у кнопки на рис. 8.2.

Элемент с темными маркерами используется в качестве эталона при выполнении команд меню Format — например, Format > Make Same Width > Width. При ручном масштабировании все элементы в группе изменяются пропорционально независимо от того, какой элемент выбран эталонным.

Чтобы назначить в группе новый эталонный элемент, щелкните на новом эталоне, не снимая выделения с группы.

Рис. 8.2. Объединение элементов в группы

Разместив группу элементов в нужном месте, выполните команду Format > Lock Controls — элементы фиксируются в текущей позиции, что предотвращает их случайное перемещение. В отличие от предыдущих версий VB фиксация положения выполняется для отдельных групп и не распространяется на новые элементы, размещаемые на форме.

Если несколько элементов должны действовать как единое целое (например, набор переключателей), разместите их внутри элемента GroupBox вместо элемента Frame. Усовершенствованный элемент Panel позволяет использовать полосы прокрутки, которые также могут использоваться при группировке элементов. Кстати говоря, теперь на элементы GroupBox и Panel можно перетаскивать существующие элементы.

 

Сохранение пропорций: свойства Anchor и Dock

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

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

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

Поскольку и стыковка, и привязка выполняются по отношению к контейнеру, вы можете сначала стыковать/привязать групповые поля (GroupBox) или панели к краям формы, а затем проделать то же самое с элементами внутри этих контейнеров. Как правило, необходимость в программировании изменения размеров при этом пропадает. Например, в процессе построения формы, показанной на рис. 8.6, три групповых поля были пристыкованы к левому краю формы, после чего три кнопки были пристыкованы к нижнему краю первого группового поля.

Рис. 8.5. Стыковка элементов с краем формы

Рис. 8.6. Будущий калькулятор

 

Меню Tab Order

Изменение порядка перебора элементов (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

 

Назад Начало Вперед