Стандартные элементы управления Visaul basic

Элементы управления (ЭУ) – это объекты, которые можно поместить на форме. Для организации эффективного взаимодействия с элементами управления при разработке приложения используется режим конструктора, где можно выделять, изменять внешний вид элемента управления, изменять их свойства.

Как и все объекты, ЭУ имеют свойства и методы. Свойства ЭУ определяют их внешний вид (положение, цвет, размер) и поведение. Изменять свойства можно как во время проектирования, так и во время выполнения программы.

Метод – это процедура, которая воздействует на объект во время её выполнения (например, метод Move – перемещение объектов). Примером свойства может служить свойство Name, которое определяет имя объекта и используется для ссылок на ЭУ в программе. Можно использовать русские буквы.

Общие свойства почти для всех элементов:

Свойство Содержание свойства
Name имя, которое используется для ссылок на ЭУ в программе, его нельзя менять в процессе выполнения программы
Left позиция ЭУ относительно левого края формы или рамки
Top позиция ЭУ относительно верхнего края формы или рамки
Height высота ЭУ
Width ширина ЭУ
BorderStyle стиль границы формы (окна программы): Sizable - обычная, FixedSingle - тонкая, None – отсутствует
BackColor Цвет фона элемента, можно задать выбрав из палитры или указав привязку к текущей цветовой схеме операционной системы
ForeColor цвет, используемый при выводе текста и для контуров графических объектов
Font шрифт, используемый при выводе текста на элементе
ScaleMode определяет единицы измерения размеров управляющих элементов
Visible определяет, будет ли виден ЭУ на экране: True – виден, False – нет

Методы общие для всех элементов управления:

Метод Результат применения
Move перемещение элементов управления по форме
Drag служит для перетаскивания элементов управления

 

Общие события для большинства элементов управления:

Событие Содержание события
Click запускается при одном щелчке на элементе управления
DblClick запускается при двойном щелчке на элементе управления

 

Большинству элементов управления, кроме Frame, Image, Label, Line, Shape, Timer, принадлежит понятие фокуса.

Фокус – это возможность принимать ввод пользователя посредством мыши или клавиатуры. Если элемент управления имеет фокус, он может принять ввод пользователя. На форме Visual Basic с несколькими элементами управления, например, текстовыми окнами, только одно окно (имеющее фокус) будет иметь возможность принимать текст, вводимый посредством клавиатуры.

Когда ЭУ получает или теряет фокус, инициализируются события GotFocus или LostFocus соответственно. Формы и большинство элементов управления поддерживают эти события. Кроме этих событий элементы управления имеют также событие Validate, которое инициализируется перед тем, как элементы управления теряют фокус. Однако это событие инициализируется в том случае, если свойство CausesValidation элемента, принимающего фокус, установлено в True. Для проверки правильности ввода данных в элемент управления подходит как событие LostFocus, так и событие Validate, но поскольку событие Validate инициализируется перед потерей фокуса элементом управления, оно более подходит для проверки данных, чем LostFocus.

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

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

Передать элементу управления фокус можно одним из способов:

1. Выделением (мышью) этого элемента во время исполнения приложения.

2. Использованием “горячей” клавиши во время выполнения приложения.

3. Использованием метода SetFocus в программном коде.

Элемент управления командная кнопка (CommandButton). Используется при разработке интерфейса.

Свойства ЭУ CommandButton :

Свойство Содержание свойства
Caption задаёт текст надписи на кнопке
Enabled признак доступности кнопки (True) или ее недоступности (Falshe)
Style вид кнопки: обычная (Standard) или графическая (Graphical)
Picture определяет рисунок на поверхности кнопок
PicturePosition определяет позицию рисунка относительно надписи
ToolTipText задает текст подсказки, которая появляется при позиционировании указателя мыши на кнопке

События ЭУ CommandButton:

Событие Содержание события
Click возникает при нажатии пользователем кнопки мышью или на клавиатуре.
DblClick возникает при двойном нажатии на кнопке

Элемент управления метка (Label). Используется для размещения в форме статического текста, который не может быть отредактирован пользователем. Метки используются для идентификации объектов в форме (например, заголовки или описания для ЭУ).

Свойства ЭУ Label:

Свойство Содержание свойства
Caption содержит текст, размещённый в этом элементе. Длина значения свойства ограничена 1024 байтами
AutoSize признак того, что размер поля определяется его содержимым
WordWrap признак того, что слова, которые помещаются в текущей строке, автоматически переносятся на следующую строку
Aligment задает способ выравнивания текста внутри поля: по левому краю – LeftJustify (0), по центру - Center (2), по правому краю - RightJustify (1).

Элемент управления Текстовое поле (TextBox). Используется для ввода и редактирования текста.

Свойства элемента TextBox:

Свойство Содержание свойства
Text текст, находящийся в поле редактирования
Locked используется для ограничения возможности изменения текста в поле редактирования (False – текст в поле редактировать нельзя)
MultiLine делает возможным многострочное отображение текста
ScrollBar управление отображением полос прокрутки: Vertical – только полоса вертикальной прокрутки, Horizontal – только полоса горизонтальной прокрутки, Both - вертикальная и горизонтальная полоса прокрутки, None – без полос прокрутки.

Текстовое поле в VB характеризуется двумя свойствами, позволяющими использовать их при создании полей, предназначаемых для ввода пароля:

- PasswordChar – задает символ, отображаемый в поле вместо вводимых символов;

- MaxLength – максимальное число символов, вводимых в поле.

Элемент управления рамка (Frame). Является контейнером и служит для объединения других элементов в группу, после чего помещенными в него объектами можно управлять как единым целым (например, объединение в группу размещенных в форме и функционально связанных переключателей).

Свойства ЭУ Frame:

Свойство Содержание свойства
Caption задает текст, располагающийся в верхнем левом углу рамки
Font используется для установки параметров шрифта
Appearance свойство может принимать значения 0 (Flat) или 1 (3D), задающие плоский или объемный вид рамки

При работе с элементом Frame для группирования в нем других ЭУ на форме необходимо сначала обозначить этот элемент, а затем расположить в его переделах другие элементы управления. Это позволит перемещать как одно целое Frame и элементы управления внутри его.

Элемент управления флажок (CheckBox). Используется для размещения в форме данных, которые могут иметь только одно из двух допустимых значений. Флажки могут использоваться в форме по одному или группами. Как правило, флажок находится в одном из двух положений – установлен или сброшен (значения True и False).

Свойства ЭУ CheckBox:

Свойство Содержание свойства
Caption текст, отображаемый справа от флажка
Value задаёт или возвращает состояние флажка. Это свойство может принимать следующие значения: 0 (vbUnchecked) – Unchecked (Сброшен); 1 (vbChecked) – Checked (Установлен); 2 (vbGrayed) – Grayed (Недоступен)

 

Событие ЭУ CheckBox:

Click используется для реагирования на щелчок флажка.

Элемент управления переключатель (OptionButton). Функционально похож на элемент Флажок, однако позволяет пользователю выбрать один из нескольких взаимоисключающих вариантов. Обычно переключатели собраны в группы: если установлен один, остальные сброшены.

По умолчанию на форме все переключатели собраны в одну группу. Чтобы выбрать одновременно несколько переключателей, их необходимо разбить на несколько групп в окне Свойства (Properties), задав свойство GroupName объекта OptionButton программно или вручную.

Свойства ЭУ OptionButton:

Свойство Содержание свойства
Caption текст, отображенный рядом с переключателем
GroupName группа, к которой принадлежит переключатель
Value задает или возвращает состояние переключателя, принимает два значения: True – переключатель нажат, False – сброшен
Tag свойство, используемое по усмотрению разработчика

Событие ЭУ OptionButton:

Click – используется для реагирования на щелчок переключателя.

Элемент управления Список (ListBox). Создает в форме список, в котором элементы расположены в одну или несколько колонок. Количество значений списка, выведенных на экран, определяется размером окна списка. Если элементы списка не помещаются в объекте ListBox, то в нем появляются полосы прокрутки, располагаемые снизу и/или с правой стороны.

Элемент управления Поле со списком (ComboBox). Создает в форме раскрывающийся список, представляющий собой объект типа ComboBox. Этот тип списка позволяет пользователю осуществлять выбор значения, вводимого в размещаемое сверху поле ввода или выбирать значение из списка, открываемого нажатием кнопки со стрелкой, размещаемой с правой стороны. Список данного типа удобно использовать в том случае, если вводимых значений много, а места в форме для расположения обычного списка не хватает.

Свойства ЭУ ListBox и ЭУ ComboBox:

Свойство Содержание свойства
List обеспечивает доступ ко всем элементам списка. Свойство содержит массив, в котором каждый элемент списка является элементом массива. Каждый элемент представлен в строковой форме. Инициализировать элементы списка можно следующими способами: 1. Если в программе описан массив оператором Dim MyArray(10), то присвоить значение этого массива списку можно оператором: MyList.List( ) = MyArray 2. Элементы списка можно вводить во время разработки, устанавливая свойство List в окне свойств элемента управления. Обратиться к элементу списка можно оператором: ListBox.List(индекс) Например: Text1.Text=List1.List(2)’Вводит в ‘текстовое поле третий элемент
ListIndex содержит номер выбранного элемента списка. Значение этого свойства равно 0, если выбран первый (верхний) элемент списка и так далее
ListCount содержит количество значений в списке Например: Private SubList1_Click () Text1.Text=”Выбрано значение”&List1.Text End Sub
Style определяет способ ввода значения в поле списка: 0 – позволяет ввести в поле списка текст с клавиатуры, который присваивается свойству Value элемента ComboBox; 2 – по своему действию не отличается от обычного списка ListBox

Методы элементов ЭУ ListBox и ЭУ ComboBox:

Метод Результат применения
AddItem добавляет элементы к списку. Если индекс задан, то элемент добавляется в указанную индексом позицию, если его нет, то – в конец списка. Метод AddItem имеет следующий синтаксис: Object.AddItem элемент [, индекс] Например: Private SubForm1_Load() List1.AddItem “Колечиц” List1.AddItem “Огарков” List1.AddItem “Бойко” List1.AddItem “Громов” End Sub или List1.AddItem “Никитин”, 1
RemoveItem удаляет элемент из списка. Метод RemoveItem имеет следующий синтаксис: Object.RemoveItem индекс Например: List1.RemoveItem 1
Clear удаляет все строки из списка

Элемент управления Индикатор (ProgressBar). Используется для наглядного представления протекания процесса, например, обработки (копирования) файлов, загрузки информации из сети и т.п.

Свойства элемента ProgressBar:

Свойство Содержание свойства
Value используется для определения длины полосы прокрутки; доступно только во время работы программы
Min/Max минимально/максимально допустимое значение Value
Scrolling определяет вид индикатора: последовательность прямоугольников – 0, полоса - 1

Чтобы УЭ ProgressBar был доступен, следует подключить библиотеку Microsoft Windows Common Controls 6.0 SP4 (mscomctl.ocx).

Элемент управления Счетчик (Vscroll).Позволяет уменьшать или увеличивать числовое значение в результате щелчка стрелки.

Элемент управления Полоса прокрутки (ScrollBar). Позволяет выбирать значение из заданного диапазона с помощью мыши щелчком стрелки на концах полосы прокрутки или на самой полосе или путём перетаскивания бегунка мышью.

Свойства ЭУ Vscroll и ЭУ ScrollBar:

Свойство Содержание свойства
Max максимальное значение, выдаваемое полосой прокрутки или счётчиком. Это положительное целое число или нуль
Min минимальное значение, выдаваемое полосой прокрутки или счетчиком. Это положительное число или нуль
SmallChange отрицательное или положительное целое число, равное шагу изменения значения полосы прокрутки или счётчика при щелчке одной из стрелок
Value текущее значение элемента управления

События ЭУ SpinButton и ЭУ ScrollBar:

Change – происходит при смене значения элемента управления, когда пользователь нажимает одну из кнопок элемента или когда бегунок занял новое положение, или при изменении значения свойства Value в программе.

Элемент управления Часы (Timer). Обеспечивает генерацию последовательности событий.

Свойства элемента Timer:

Свойство Содержание свойства
Interval период генерации события Timer; задается в миллисекундах
Enabled hазрешение работы (запуск/остановка): разрешает (True) и запрещает (False) генерацию события Timer

Элемент управления Data. Используется для создания относительно простых приложений доступа к базе данных без программного манипулирования данными. Связанные с данными элементы управления получают возможность управлять данными наборов записей только будучи связаны с элементом управления Data. Все эти элементы управления позволяют выводить и управлять сразу несколькими записями.

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

Свойства ЭУ Data:

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

 

Элемент управления Изображение (PictureBox). Используется для отображения некоторой картинки, т.к. имеет свойство, которое содержит имя файла для отображения. Чтобы отобразить или удалить рисунок в режиме исполнения, необходимо использовать функцию LoadPicture для установки свойства Picture.

Например:

Рисунок.Picture = LoadPicture(“Pic01.BMP)

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

Свойства ЭУ PictureBox:

Свойство Содержание свойства
Picture используется для отображения рисунка в окне PictureBox
AutoSize при равенстве True приводит к автоматической настройке размеров окна элемента для соответствия их размеру картинки
FillColor задает цвет закраски внутренних областей графических примитивов
FillStyle задает стиль закраски графических объектов: сплошная заливка – Solid, горизонтальная штриховка – HorizontalLine (2), вертикальная штриховка – VerticalLine (3), прозрачная – Transparent (1)
DrawStyle вид контура графических объектов: сплошна линия – Solid (0), пунктирная линия – Dash (1), линия из точек – Dot (2), штрихпунктирная линия – DashDot(4)
DrawWidth толщина линий графических объектов

Методы ЭУ PictureBox:

Метод Результат применения
Print позволяет выводить текст в окно элемента PictureBox
Circle, Line, Point, Pset используются для рисования графических примитивов в окне элемента PictureBox

Элемент управления Образ (Image).Подобен элементу PictureBox, но используется только для отображения графических файлов следующих форматов: растровый рисунок (.bmp и .dib), пиктограмма (.ico), метафайл (.wmf, .emf), JPEG (.jpg) и GIF (.gif). Элементы управления Image отвечают на событие Click и могут использоваться в качестве замены для командных кнопок, как элементы панели инструментов, или для создания простых эффектов анимации.

Компонент Image, в отличие от PictureBox, обладает возможностью масштабирования. Поэтому его используют для отображения иллюстраций, размер которых больше самого компонента.

Свойства ЭУ Image:

Свойство Содержание свойства
Picture используется для отображения рисунка в окне Image, а во время выполнения приложения загрузка рисунка в элемент Image осуществляется с помощью функции LoadPicture.
Stretch установка свойства в False приводит к тому, что окно элемента Image изменяется до размеров отображаемого рисунка; при установке свойства в True размеры самого рисунка изменяются до размеров окна Image, при этом рисунок может быть растянут или сжат.

Элемент управления Линия (Line).Используется для добавления в форму линии.

Свойства ЭУ Line:

Свойство Содержание свойства
BorderWidth задает толщину линии
BorderColor задает цвет линии
BorderStyle задает стиль отрезка линии
DrawWidth толщина линии
X1 горизонтальная координата точки начала линии
Y1 вертикальная координата точки начала линии
X2 горизонтальная координата точки конца линии
Y2 вертикальная координата точки конца линии

Элемент управления Фигура (Shape). Используется для создания стандартных фигур в формах, рамках или изображениях: прямоугольник, квадрат, овал, круг, округленный прямоугольник или округленный квадрат.

Свойства элемента Shape:

Свойство Содержание свойства
Shape определяет тип геометрической фигуры: прямоугольник – 0, квадрат – 1, овал – 2, круг – 3, прямоугольник со скругленными углами – 4, квадрат со скругленными углами - 5
BorderColor задает цвет границы
FillColor задает цвет заполнения
BorderStyle задает стиль границы

 

 

Управляющие структуры

Все языки программирования (высокого уровня и ассемблерные) имеют управляющие структуры, позволяющие изменять порядок выполнения, перечисленных в программном коде процедуры или функции, команд.

Управляющие структуры VB функционально эквивалентны подобным структурам в языке программирования Бейсик, за исключение For-EachNext.

Ниже перечислены основные управляющие структуры VB:

If-Then-Else Выполняет группу операторов, если соблюдено некоторое условие.

Select Case В зависимости от значения некоторой переменной или результата проверки условия выполняет одну из нескольких возможных групп операторов.

GoToВыполняет изменение порядка выполнения операторов без проверки какого-либо условия.

For-Next Выполняет группу операторов заданное число раз, известное до начала выполнения цикла.

While-Wend Выполняет группу операторов, пока соблюдается некоторое условие.

Do-Loop Выполняет группу операторов, пока соблюдается или не соблюдается некоторое условие.

For-Each-Next Выполняет действие над каждым объектом семейства или элементом массива.

ExitВыполняет выход из цикла, а также из процедуры или функции.

 

Структура принятия решения If-Then-Else.Условный оператор If-Then-Else изменяет порядок выполнения программы в зависимости от результатов проверки некоторого условия и дает возможность выбирать из двух альтернативных ветвей кода процедуры на основе оценки того, является ли указанное условие равным True. Синтаксическая конструкция данного оператора имеет две формы:

- безальтернативную, содержащую два типа:

• линейный: If <условие> Then <выражение>

• блочный: If <условие> Then

Блок_операторов

End If

- альтернативную, содержащую также два типа:

• линейный: If <условие> Then <выражение_1> Else <выражение_2>

• блочный: If <условие> Then

Блок_операторов_1

Else

Блок_операторов_2

End If

Дополнительное условие ElseIf. Средствами структуры принятия решения If-Then-Else можно организовать выполнение операторов в зависимости от соблюдения определенного условия. Рассмотрим другой вариант ее использования, на этот раз с ключевым словом ElseIf. Данная конструкция If...Then...ElseIf с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие принимает значение False. Синтаксис оператора, определяющего несколько групп операторов, из которых в зависимости от соблюдения условия должна быть выполнена только одна:

If <условие_1> Then

Блок_операторов_1

ElseIf <условие_2> Then

Блок_операторов_2

Else

Блок_операторов_n

End If

Управляющая структура Select Case. Структура Select Case позволяет в зависимости от значения переменной или выражения выполнить один из нескольких фрагментов программы. Ее действие подобно действию структуры If-Then-Else, в которой условие переопределяется ключевым словом Elself. Структура Select Case работает с единственным оцениваемым выражением, которое проверяется однажды, наверху структуры. Затем Visual Basic сравнивает результат этого выражения со значениями для каждого Case структуры. Если встречается совпадение, выполняется группа операторов, ассоциированных с этим Case.

Синтаксис этого оператора следующий:

Select Case <оцениваемое_выражение>

Case <список_выражений_1>

Блок_операторов_1

Case <cписок_выражений_2>

Блок_операторов_2

. . .

Case <список_выражений_n>

Блок_операторов_n

End Select

Операторы передачи управления. Операторы передачи управления применяются в программе для реализации безусловных алгоритмических конструкций. Они выполняют переход с одного участка программы на другой без проверки какого-либо условия. Оператор безусловного перехода имеет следующий вид:

GoTo <идентификатор>,

где GoTo – ключевое слово, идентификатор – одна из меток программы.

Метка помещается слева от программного оператора и отделяется от него двоеточием.

Управляющая структура For-Next. Данная структура позволяет выполнять несколько команд заданное число раз. Синтаксис цикла For-Next следующий:

For <СчетчикЦикла> = <НачальноеЗначение> To _

<КонечноеЗначение> [Step Шаг]

Блок операторов

[Exit For]

Next <[СчетчикЦикла]>

Параметры СчетчикЦикла, НачальноеЗначение, КонечноеЗначение, Шаг – числовые. Если ключевое слово Step отсутствует, то значение шага равно единице.

Управляющая структура While-Wend. Действие этой структуры подобно действию For-Next, но группа операторов выполняется не заданное число раз, а до соблюдения определенного условия. Синтаксис данной структуры следующий:

While <условие>

<блок операторов>

Wend

Управляющая структура Do-Loop. Рассматриваемая структура похожа на структуру While-Wend, однако дополнительно обладает двумя важными особенностями. Во-первых, условие завершения цикла Do-Loop можно задавать не только в его начале, но и в конце.

Условие в конце цикла гарантирует, что он будет выполнен хотя бы один раз. Во-вторых, условие можно сделать критерием как выполнения цикла Do-Loop, так и его завершения. Последняя возможность в цикле While-Wend также доступна – чтобы цикл выполнялся, пока не соблюдено некоторое условие, его надо указать в структуре While с логическим оператором Not.

В Visual Basic оператор цикла Do-Loop имеет две разновидности Do While … Loop и Do Until … Loop.

Циклы Do While/Until имеют следующий синтаксис:

Do While / Until <условие>

<блок операторов>

[Exit Do]

Loop

или

Do

<блок операторов>

[Exit Do]

Loop While / Until <условие>

Управляющая структура For-Each-Next.Это самый мощный цикл Visual Basic For-Each-Next. Аналогичные структуры в других языках программирования встречаются очень редко. Структура For-Еach-Next предназначена для выполнения одной и той же группы действий над каждым объектом семейства или элементом массива. Это особенно выгодно, если точно не известно, сколько элементов содержит коллекция. Синтаксис оператора For-Each-Next следующий:

For Each<элемент> In <коллекция>

<блок операторов>

Next <элемент>

Оператор Exit. С помощью этого оператора осуществляется выход из процедуры или функции. А также в случаях, когда необходимо прервать выполнение цикла до его завершения.

Команда Exit завершает выполнение цикла и передает управление следующей за циклом конструкции. Синтаксис этого оператора внутри цикла For выглядит так:

Exit For.

Внутри цикла Do синтаксис оператора Exit Do:

For <СчетчикЦикла> = <НачальноеЗначение> To

<КонечноеЗначение> [Step Шаг]

Блок операторов_1

[Exit For]

Блок операторов_2

Next [СчетчикЦикла]

Do [{While / Until} <условие>]

Блок операторов_1

[Exit Do]

Блок операторов_2

Loop [{While / Until} <условие>]

Например:

For nCounter=100 To1 Step–10

nDecades(nCounter) = nCounter * 2

If nDecades(nCounter) > 20 Then Exit For

Next

Оператор Exit служит также для выхода из процедур Sub и Function.

Синтаксис операторов в этом случае соответственно Exit Sub и Exit Function.

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