Стандартные элементы управления 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:
Метод | Результат применения |
позволяет выводить текст в окно элемента 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.
Эти операторы могут находиться в любом месте тела процедуры. Они используются и в том случае, когда процедура выполнила нужные действия и из нее необходимо выйти.