Электронная библиотека » Евгений Матвеев » » онлайн чтение - страница 8


  • Текст добавлен: 16 октября 2020, 08:02


Автор книги: Евгений Матвеев


Жанр: Прочая образовательная литература, Наука и Образование


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 8 (всего у книги 18 страниц)

Шрифт:
- 100% +
9.3.1. Свойства

Текстовое поле имеет около пятидесяти свойств, важнейшим из которых является Text (Текст). Это свойство содержит вводимый пользователем текст.

Другие специфические свойства элемента управления TextBox (Текстовое поле) :

CausesValidation (Вызовы проверки). Управляет вызовом процедуры обработки события Validate (Проверка), которое используется для проверки правильности заполнения текстового поля перед потерей фокуса ввода:

• True (Истина) – событие вызывается,

• False (Ложь) – событие не вызывается.

HideSelection (Скрытие выделения). Определяет скрытие выделения при потере фокуса ввода текстовым полем. Во время выполнения свойство доступно только для чтения. Допустимые значения:

• True (Истина) – выделение скрывается,

• False (Ложь) – выделение сохраняется.

Locked (Блокировка). Разрешает или запрещает редактирование содержимого текстового поля:

• True (Истина) – текстовое поле заблокировано,

• False (Ложь) – редактирование разрешено.

MaxLength (Максимальная длина). Определяет максимальное количество вводимых символов. Если значение данного свойства равно нулю, то число вводимых символов не ограничивается.

MultiLine (Многострочность). Управляет возможностью ввода многострочного текста, завершая каждый абзац нажатием клавиши [Enter]:

• True (Истина) – ввод многострочного текста разрешен,

• False (Ложь) – ввод многострочного текста запрещен.

PasswordChar (Символ пароля). По умолчанию данное свойство равно пустой строке и вводимые символы отображаются на экране именно в том виде, как они занесены в свойство Text (Текст).

Если же PasswordChar (Символ пароля) содержит какой-нибудь символ, то он будет отображаться на экране вместо вводимых букв и цифр. Необходимость в этом возникает при наборе паролей, чтобы посторонние лица, находящиеся рядом с экраном компьютера пользователя программы, не могли увидеть введенный текст.

ScrollBars (Полосы прокрутки). Определяет наличие линеек прокрутки для удобства ввода и редактирования большого текста:

• 0 – None (Нет),

• 1 – Horizontal (Горизонтальная),

• 2 – Vertical (Вертикальная),

• 3 – Both (Обе).

SelLength (Длина выделения). Содержит количество символов, выделенных в данный момент. Возможно изменение длины выделенного фрагмента текста программным путем.

SelStart (Начало выделения). Содержит порядковый номер символа, с которого начинается выделение. Ноль указывает на первый символ строки, единица – на второй символ и т. д.

SelText (Выделенный текст). Содержит текст, который был выделен.

TabStop (Остановка табуляции). Разрешает получение элементом управления фокуса ввода при перемещении по форме с помощью клавиши [Tab]:

• True (Истина) – остановка табуляции разрешена,

• False (Ложь) – остановка табуляции запрещена.

9.3.2. События

Программисту часто требуется проверять корректность информации, которая вводится в текстовое поле, для чего предназначены следующие события:

Change (Изменение). Вызывается при вводе или удалении отдельного символа, либо выделенного фрагмента. Позволяет жестко контролировать любые изменения текста, производимые пользователем или программой.

GotFocus (Получение фокуса). Происходит при получении фокуса ввода данным элементом управления. Причем не играет роли, как именно объект получил фокус – с помощью мыши, клавиатуры или метода SetFocus (Установить фокус).

LostFocus (Потеря фокуса). Происходит при потере фокуса ввода и его переходе к другому элементу управления.

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

9.3.3. Методы

SetFocus (Установить фокус) – самый полезный и наиболее часто используемый метод элемента управления TextBox (Текстовое поле), позволяющий программным путем устанавливать фокус ввода в выбранное текстовое поле:


Text1. SetFocus

9.3.4. Пример программирования

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

Выберите элемент управления TextBox (Текстовое поле) в панели элементов и нарисуйте на форме два текстовых поля: Text1 и Text2.

Откройте окно кода, для чего щелкните правой кнопкой мыши на текстовом поле Text1 и выберите пункт появившегося контекстного меню View Code (Просмотр кода).

В правом списке окна кода выберите событие Validate (Проверка) и введите текст процедуры Text1_ Validate:


Private Sub Text1_Validate (Cancel As Boolean)

If Len (Text1.Text) <10 Then ‘ проверка длины текста

MsgBox «Текст должен быть не короче 10-ти символов!»

Cancel = True ‘ отмена события LostFocus (Потеря фокуса)

Else

Cancel = False ‘ разрешение события LostFocus (Потеря фокуса)

End If

End Sub


В условной инструкции If…Then… Else с использованием встроенной функции Len производится проверка длины введенного текста.

Если количество символов меньше десяти, то выдается диагностическое сообщение и параметру Cancel (Отмена) присваивается значение True (Истина), в результате чего происходит отмена события LostFocus (Потеря фокуса). Курсор остается в текстовом поле, а пользователь вводит недостающие символы.

В случае наличия в свойстве Text (Текст) достаточного количества символов, разрешается потеря фокуса данным текстовым полем.

Перейдите в режим выполнения и введите в первое текстовое поле менее 10-ти символов.

Затем попробуйте перейти к другому полю с помощью мыши или клавиши [Tab]. Появится окно сообщения, предупреждающее пользователя, что текст должен содержать не менее десяти символов (Рис.9.7).


Рис.9.7. Сообщение о допустимой длине текста


Нажмите кнопку OK для закрытия окна сообщения. Вы увидите, что курсор остался в первом текстовом поле.

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

В прошлой главе мы сделали простейший графический редактор. Теперь создадим текстовый редактор на основе элемента управления TextBox (Текстовое поле).

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

В режиме проектирования щелкните мышью на текстовое поле Text2 и нажмите клавишу [Delete]. Объект будет удален и на форме останется только текстовое поле Text1.

Выделите его щелчком мыши, после чего в Properties Window (Окно свойств) появится перечень ее свойств.

Свойству MultiLine (Многострочность) присвойте значение True (Истина), а свойству ScrollBars (Полосы прокрутки) – значение 3 – Both (Обе).

С помощью контекстного меню формы откройте окно кода и создайте процедуру обработки события Form_Resize, которая вызывается при изменении геометрических размеров формы:


Private Sub Form_Resize ()

Text1.Top = ScaleTop ‘ верхний край текстового поля

Text1.Left = ScaleLeft ‘ левый край текстового поля

Text1.Width = ScaleWidth ‘ ширина текстового поля

Text1.Height = ScaleHeight ‘ высота текстового поля

End Sub


Смысл операторов данной процедуры заключается в том, что верхний и левый края текстового поля вплотную подгоняются к краям формы путем присвоения значений свойств формы ScaleTop (Масштабированная верхняя координата) и ScaleLeft (Масштабированная левая координата) соответствующим свойствам текстового поля. Аналогичным образом устанавливается ширина и высота текстового поля.

Запустите приложение и поэкспериментируйте с ним, вводя текст, а затем используя стандартные комбинации клавиш Windows для его редактирования (например, [Ctrl] + [X] и [Ctrl] + [V]) и команды контекстного меню, вызываемого щелчком правой кнопки мыши (Рис.9.8).


Рис.9.8. Текстовый редактор


Попробуйте с помощью мыши изменить размеры окна приложения. Края текстового поля останутся плотно подогнанными к краям формы.

9.4. Command Button (Командная кнопка)

С элементом управления Command Button (Командная кнопка) мы уже познакомились во второй главе, когда создавали свое первое приложение Hello, World! (Привет, мир!). Но на всякий случай напомним, что командные кнопки используются для выполнения подпрограмм, вызываемых пользователем. По своим функциональным возможностям и внешнему виду командная кнопка во многом похожа на надпись, но выглядит объемно (Рис.9.9).


Рис.9.9. Элемент управления

Command Button (Командная кнопка)

9.4.1. Свойства

Многие свойства командной кнопки такие же, как у элемента управления Label (Надпись). Одним из основных свойств является Caption (Заголовок), которое содержит текст, отображаемый на поверхности кнопки. В строке заголовка, также, разрешается обозначать клавишу доступа («горячую» клавишу) путем проставления перед нужной буквой символа амперсанта "&». Часто применяется и свойство Enabled (Доступность), регулирующее доступность событий мыши и клавиатуры. Специфические свойства кнопки в основном связаны с графическими возможностями элемента управления Command Button (Командная кнопка):

Cancel (Отмена). Устанавливает вызов события Click (Щелчок) у данной командной кнопки при нажатии на клавишу [Esc]. На форме может быть только одна кнопка, у которой значение данного свойства = True (Истина):

• True (Истина) – событие вызывается,

• False (Ложь) – событие не вызывается.

Default (По умолчанию). Устанавливает вызов события Click (Щелчок) у данной командной кнопки при нажатии на клавишу [Enter], независимо от местоположения фокуса ввода. На форме может быть только одна кнопка, у которой значение данного свойства = True (Истина):

• True (Истина) – событие Click (Щелчок) вызывается,

• False (Ложь) – событие Click (Щелчок) не вызывается.

DisabledPicture (Рисунок при блокировке). Содержит файл рисунка, который отображается на поверхности командной кнопки, если свойство Enabled (Доступность) = False (Ложь). Устанавливается на этапе проектирования при Style (Тип) = 1.

DownPicture (Рисунок при нажатии). Содержит файл рисунка, который отображается на поверхности командной кнопки в момент ее нажатия. Устанавливается на этапе проектирования при Style (Тип) = 1.

MaskColor (Маскированный цвет). Содержит код цвета, становящийся прозрачным в любых рисунках, отображаемых на поверхности командной кнопки. Свойство используется Visual Basic, если значения свойств Style (Тип) = 1, а UseMaskColor (Использование маскированного цвета) = True (Истина).

Picture (Рисунок). Содержит файл рисунка, который отображается на поверхности командной кнопки, находящейся в обычном состоянии. Устанавливается на этапе проектирования при Style (Тип) = 1.

Style (Тип). Определяет тип командной кнопки:

• 0 – Standard (Стандартный),

• 1 – Graphical (Графический).

UseMaskColor (Использование маскированного цвета). Управляет использованием маскированного (прозрачного) цвета в любых рисунках, отображаемых на поверхности командной кнопки:

• True (Истина) – маскированный цвет используется,

• False (Ложь) – маскированный цвет не используется.

9.4.2. События

Событие командной кнопки Click (Щелчок) используются в подавляющем большинстве случаев. Это обусловлено узкой специализацией данного элемента управления. Событие Click (Щелчок) можно вызвать двумя способами:

• щелкнув мышью на кнопке,

• переместив с помощью клавиши [Tab] фокус ввода на кнопку и нажав клавишу [Enter].

9.4.3. Методы

Никаких новых методов, которых мы еще не рассматривали, командная кнопка не использует. Да и вообще, методы элемента управления Command Button (Командная кнопка) применяются довольно редко.

9.4.4. Пример программирования

Программирование командных кнопок мы уже осуществляли во второй главе, когда создавали приложение Hello, World! (Привет, мир!). Здесь хотелось бы показать использование полезного свойства Enabled (Доступность).

На панели элементов выберите элемент управления Command Button (Командная кнопка) и нарисуйте две кнопки: Command1 и Command2.

Двойным щелчком мыши на кнопке Command1 откройте окно кода и введите текст процедуры обработки события Command1_Click:


Private Sub Command1_Click ()

MsgBox «Нажата кнопка Command1»

Command1.Enabled = False ‘ кнопка 1 заблокирована

Command2.Enabled = True ‘ кнопка 2 доступна

End Sub


Затем создайте вторую процедуру Command2_Click:


Private Sub Command2_Click ()

MsgBox «Нажата кнопка Command2»

Command1.Enabled = True ‘ кнопка 1 доступна

Command2.Enabled = False ‘ кнопка 2 заблокирована

End Sub


Запустите пробное приложение и проверьте его работу. После нажатия любой из кнопок она станет недоступной до тех пор, пока не будет нажата другая кнопка. Таким образом, можно использовать свойство Enabled (Доступность), чтобы предотвратить ошибочные действия пользователя.

9.5. CheckBox (Флажок)

Элемент управления CheckBox (Флажок) используется для выбора параметра установкой флажка, либо для отмены выбора этого параметра путем его сброса (Рис.9.10).


Рис.9.10. Элемент управления

CheckBox (Флажок)


CheckBox (Флажок) поддерживает три состояния:

• 0 – Unchecked (Сброшен),

• 1 — Checked (Установлен),

• 2 – Grayed (Серый).

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


9.5.1. Свойства

Главным свойством флажка является Value (Значение). Это свойство отражает не только его внешний вид, но и внутреннее состояние:

• 0 – Unchecked (Сброшен) или False (Ложь),

• 1 — Checked (Установлен) или True (Истина),

• 2 – Grayed (Серый) или True (Истина).

Если в вашей программе не используется состояние флажка Grayed (Серый), то для проверки свойства Value (Значение) можно использовать встроенные константы Visual Basic: True (Истина) и False (Ложь). Для более точной идентификации применяйте другие встроенные константы: vbUnchecked, vbChecked и vbGrayed.

Свойство Caption (Заголовок) содержит текст, располагаемый рядом с флажком, поясняя его функцию для пользователя.

9.5.2. События

При программировании элемента управления CheckBox (Флажок) процедуры обработки событий используются редко, так как этот объект сам выполняет нужные операции. Чаще всего, производится обработка события Click (Щелчок).

9.5.3. Методы

Объект CheckBox (Флажок) обладает небольшим количеством методов, да и те почти не применяются.

9.5.4. Пример программирования

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

Выберите на панели элементов Visual Basic элемент управления CheckBox (Флажок) и расположите его в любом месте формы.

Затем откройте окно кода и наберите текст процедуры обработки события Check1_MouseUp:


Private Sub Check1_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = vbRightButton Then ‘ проверка отпускания кнопки

Check1.Value = vbGrayed ‘ установка серого флажка

End If

End Sub


Процедура производит проверку параметра Button на отпускание правой кнопки мыши. Если это так, программным путем устанавливается неопределенное состояние флажка Check1.

Запустите приложение и пощелкайте по несколько раз на флажке левой и правой кнопкой мыши. Левая кнопка будет его переключать, а правая – устанавливать в неопределенное состояние.

9.6. OptionButton (Переключатель)

С точки зрения программирования элемент управления OptionButton (Переключатель) почти не отличается от CheckBox (Флажок).

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


Рис.9.11. Элемент управления

OptionButton (Переключатель)


9.6.1. Свойства

Основным свойством переключателя, также, является Value (Значение), но в отличие от флажка, у него может быть только два состояния:

• True (Истина) – если переключатель выбран,

• False (Ложь) – если переключатель не выбран.

Свойство Caption (Заголовок) используется так же, как и у CheckBox (Флажок).

9.6.2. События

События элемента управления OptionButton (Переключатель) аналогичны возникающим у CheckBox (Флажок), но допускается обработка еще одного события мыши – DblClick (Двойной щелчок).

9.6.3. Методы

Никаких специальных методов переключатели не используют.

9.6.4. Пример программирования

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

Нарисуйте на форме два элемента управления OptionButton (Переключатель).

В окне кода введите текст процедуры обработки события Form_Click:


Private Sub Form_Click ()

Select Case True ‘ условие выбора – True (Истина)

Case Option1.Value ‘ проверка переключателя Option1

MsgBox «Option1»

Case Option2.Value ‘ проверка переключателя Option2

MsgBox «Option2»

End Select

End Sub


Здесь в качестве условия выбора устанавливается значение True (Истина), а затем последовательно проверяются оба переключателя. Если свойство Value (Значение) одного из переключателей совпадает с условием, то выводится сообщение с именем объекта.

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

9.7. Frame (Рамка)

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

Рамка является контейнером (Container) для всех помещенных в нее объектов, которые можно перемещать и обрабатывать как единое целое, например, одновременно делать доступными или недоступными и т. д. (Рис.9.12).


Рис.9.12. Элемент управления

Frame (Рамка)

9.7.1. Свойства

Текст рамки, видимый на экране, хранится в свойстве Caption (Заголовок). Другие свойства рамки вам хорошо известны, так как все они присутствуют у элементов управления, которые мы изучали ранее.

9.7.2. События

Объект Frame (Рамка), также, не обладает какими-то новыми событиями, поэтому рассматривать их здесь повторно не имеет смысла.

9.7.3. Методы

То же самое касается и методов, применимых к рамкам.

9.7.4. Пример программирования

Создадим новый пример, который проиллюстрирует взаимодействие элементов управления: Frame (Рамка), CheckBox (Флажок) и OptionButton (Переключатель).

Сначала разместите на форме объект-контейнер – рамку, затем нарисуйте внутри нее два переключателя, а за пределами рамки – один флажок.



Напишите процедуру обработки события Click (Щелчок) для флажка Check1:


Private Sub Check1_Click ()

If Check1.Value = vbChecked Then

Frame1.Enabled = True

Else

Frame1.Enabled = False

End If

End Sub


Для выбора между двумя вариантами действий в данной процедуре сначала проверяется условие: установлен ли флажокCheck1?

Если установлен, то свойству Enabled (Доступность) присваивается значение False (Ложь), разрешая доступ к рамке и элементам внутри ее, иначе – True (Истина), то есть доступ запрещается.

Запустите программу и опробуйте, как она работает. Обратите внимание, как ведут себя рамка и переключатели, когда флажок сброшен и когда он установлен.

9.8. ListBox (Список)

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

Пользователь может выбирать из списка один или несколько элементов. Для выбора нескольких элементов нужно, щёлкая мышью по списку, одновременно удерживать в нажатом состоянии клавишу [Ctrl]. Тогда можно выбирать несколько элементов, либо отменять выбор некоторых.

Содержимое списка задается на этапе проектирования, а для его заполнения в процессе работы приложения используется метод AddItem (Добавить элемент).

Внешний вид пустого списка не представляет собой ничего примечательного, главное тут – правильно установить ширину и высоту списка в зависимости от длины используемых данных (Рис.9.13).


Рис.9.13. Элемент управления

ListBox (Список)

9.8.1. Свойства

Перечень специфических свойств у списка обширнее, чем у элементов управления, рассмотренных ранее. Некоторые из свойств представляют собой массивы:

Columns (Колонки). Определяет количество колонок списка. Число 0 обозначает одну колонку с вертикальной полосой прокрутки, единица и более – соответствующее число колонок с горизонтальной полосой прокрутки.

IntegralHeight (Интегральная высота). Указывает, могут ли в списке частично отображаться элементы большой длины:

• True (Истина) – могут,

• False (Ложь) – не могут.

ItemData (Данные элементов). Массив, содержащий целые числовые значения, связанные с элементами списка. Этот массив может использоваться приложением для своих целей. Доступ к числовым данным отдельных элементов списка осуществляется следующим образом:


имя_списка.ItemData (индекс_элемента)


List (Список). Массив, состоящий из элементов списка, каждый из которых представляет собой текстовую строку. Синтаксис выражения для доступа к одному элементу списка:


имя_списка.List (индекс_элемента)


ListCount (Длина списка). Возвращает количество элементов списка. Доступно только для чтения в период выполнения.

ListIndex (Указатель текущего элемента списка). Содержит индекс текущего элемента списка, который был выделен последним. Доступно только во время выполнения. Индекс по своей сути является порядковым номером элемента списка, но, как и в других разновидностях массивов, отсчет начинается с нуля.

MultiSelect (Множественное выделение). Устанавливает режим одновременного выделения нескольких элементов списка:

• 0 – None (Нет) – возможно выделение только одного элемента,

• 1 – Simple (Простое) – щелчком мыши можно выделить любое количество элементов списка,

• 2 – Extended (Расширенное) – при выделении только мышью аналогично п. 0, если удерживать клавишу [Ctrl] – аналогично п. 1, а при нажатой клавише [Shift] – происходит выделение диапазона элементов от первого до второго щелчка мыши.

NewIndex (Указатель нового элемента списка). Возвращает индекс последнего добавленного элемента списка. Доступно только для чтения в период выполнения.

SelCount (Количество выделенных). Возвращает число выделенных элементов списка. Доступно только во время выполнения.

Selected (Выделенные). Массив, указывающий на выделенные элементы списка, для которых установлено значение True (Истина), а для остальных – False (Ложь). Доступно только во время выполнения. Доступ к отдельным элементам списка:


имя_списка.Selected (индекс_элемента)


Sorted (Сортировка). Определяет режим сортировки элементов списка при выводе их на экран. Устанавливается только при проектировании:

• True (Истина) – по алфавиту,

• False (Ложь) – в порядке добавления элементов.

Style (Тип). Управляет внешним видом элементов списка:

• 0 – Standard (Стандартный) – предусмотренный в Windows по умолчанию,

• 1 – Checkbox (Флажковый) – содержит флажки у каждого элемента списка, что облегчает множественное выделение.

Text (Текст). Содержит текст выделенного элемента списка, на который указывает свойство ListIndex (Указатель списка), или пустую строку, если ни один элемент не выбран. Доступно только во время выполнения. Аналогичный результат можно получить с помощью выражения, имеющего следующий синтаксис:


имя_списка.List(имя_списка.ListIndex)


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации