Добавить в цитаты Настройки чтения

Страница 171 из 179

Рис. 6.1. Установка свойства DataField текстового окна

Урок 7. Метка (Label), текстовое окно (Text box),...

...окно редактирования с маской (MaskedEdit), контрольный индикатор (Check box), Изображение (Image) и графическое окно (Picture box)

Label и Text Box

Объекты управления Label и Text Box используются для вывода текстовой информации на экранную форму. При работе с базами данных эти элементы управления могут применяться и для отображения на экране текстовой информации из полей базы данных. На панели инструментов Visual Basic метка и текстовое окно изображены пиктограммами  и  соответственно. Чтобы установить связь с объектом управления данными необходимо определить их свойства DataSource и DataField соответствующим образом.

Метка (Label) может быть как однострочной, так и многострочной, но в отличие от текстового окна в ней не предусмотрены возможности редактирования и прокрутки данных. Если выводимый текст не помещается в отведенное для метки место на форме, то текст обрезается. Управлять этим поведением можно при помощи свойств AutoSize и WordWrap. Свойство AutoSize определяет поведение размеров метки при изменении длины выводимого текста и по умолчанию устанавливается в False, при этом размер метки не увеличивается с ростом длины строки. При установленном в True свойством AutoSize с помощью установок свойства WordWrap определяется поведение вертикального размера метки. Если WordWrap установлен в False, то при увеличении длины строки переносов слов не будет и горизонтальный размер метки будет увеличиваться до тех пор, пока текст не достигнет правого края экранной формы. Если WordWrap установлен в True, то по мере достижения правой границы метки будет осуществляться перенос слов. Такое поведение меток продемонстрировано на рис. 7.1.

Рис. 7.1. Управление поведением размеров метки при выводе текста с помощью свойств AutoSize и WordWrap

Следует помнить, что для сохранения заданного размера метки по горизонтали необходимо установить свойство WordWrap в True до установки свойства AutoSize. В противном случае, этот размер сразу уменьшится до значения, определяемого длиной строки в свойстве Caption.

Для отображения текстовой информации из базы данных все-таки гораздо больше подходит текстовое окно. Связь с объектом управления данными осуществляется установкой свойств DataSource и DataField.

Как и метка, элемент управления — текстовое окно (TextBox) может быть однострочным или многострочным. Это определяется установкой свойства MultiLine, которое по умолчанию устанавливается в False. Если вы хотите использовать многострочное текстовое окно с возможностью прокрутки данных, то после определения его размеров и месторасположения на экранной форме установите свойство MultiLine в True и, если требуется, свойство ScrollBars (рис 7.2).

Рис. 7.2. Однострочное и многострочное текстовые окна

Если вам требуется выводить текст не подлежащий редактированию пользователем, установите, например, свойство Locked в True.

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

Check box

Связанный с данными контрольный индикатор (Check box) можно использовать для наглядного представления на экранной форме информации из полей базы данных логического типа (Да или Нет, 1 или 0, True или False). Примерами таких данных могут служить: оплачен или не оплачен счет — при разработке системы управления счетами, есть товар на складе или нет — при автоматизации складского хозяйства, постоянный покупатель или нет — в системе работы с покупателями (рис. 7.3) и т. п. На 17 панели инструментов Visual Basic контрольный индикатор обозначен пиктограммой . Связь контрольного индикатора с объектом управления данными осуществляется установкой свойств DataSource и DataField.

Рис. 7.3. Пример использования контрольного индикатора

MaskedEdit





Известно, что пользователи часто совершают ошибки при вводе информации в базы данных. Впрочем, не ошибается лишь тот, кто ничего не делает. Установить некоторый контроль над действием пользователей позволяет использование для ввода специальной информации окна редактирования с маской (MaskedEdit) Этот элемент управления позволяет так же помещать в поле ввода символы разметки. Примером такой информации может выступать номер телефона или почтовый индекс. Типичный номер телефона имеет следующий формат, где скобки и дефисы являются символами разметки, а символ # определяет любую цифру:

(###)###-##-##

Почтовый индекс состоит из шести цифр и не должен содержать букв или других символов.

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

Таблица. Символы, используемые в качестве маски

Символ - Описание

# - Любая цифра

 - Десятичная точка (например, 3.1415),

, - Разделитель тысяч (например, 1,000,000)

: - Разделитель времени (например, 21:30)

/ - Разделитель даты (например, 05/08/97)

& - Любой символ

A - Любая цифра или буква

? - Любая буква

С полем базы данных объект MaskedEdit связывается установкой свойств DataSource и DataField.

Построим простое приложение в котором будут реализованы возможности рассмотренных в этом разделе связанных элементов управления. Создадим, например, при помощи приложений VisData или MS Access базу данных CUSTOMER.MDB с одной таблицей CUSTOMERS, в которой будем хранить информацию о покупателях. Пусть эта таблица будет содержать следующие поля:

Так как наше приложение будет простой программой просмотра содержимого базы данных, то самостоятельно добавьте в таблицу CUSTOMERS несколько произвольных записей.

Создайте новый проект и расположите на форме объект управления данными, семь меток, пять текстовых окон, окно редактирования с маской и один контрольный индикатор, как показано на рис. 7.4.