Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic 6.0~01.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
21.23 Mб
Скачать

В

Мал. 3.3. Робота з текстовими полями

становлюючи різні перемикачі в рамці, можна виконувати деякі операції з лівим текстовим полем. Властивість Multiline правого поля встановлена в True, в цьому неважко переконатися за зовнішнім виглядом тексту. У додатках, що працюють з текстами, нерідко використовуються текстові поля з активізованими властивостями Multiline і ScrollBars. У таких випадках текстове поле розтягується на усю форму, а її розмір фіксується (властивістю BorderStyle). Якщо форма повинна мати змінні розміри або є дочірньою формою інтерфейсу MDI, вам доведеться динамічно змінювати розміри текстового поля при зміні розмірів форми. Наприклад, можна включити наступний фрагмент в процедуру події Resize форми:

txtText1.Top = frmForm1.ScaleTop

txtText1.Left = frmForm1.Scaleleft

txtText1.Width = frmForm1.Width

txtText1.Height = frmForm1.ScaleHeight

Властивості Scale.. відносяться до внутрішніх розмірів форми. Отже, властивості Height і ScaleHeight форми мають різні значення. У значенні ScaleHeignt не враховується простір, займаний заголовком і межами форми.

3. Завершіть роботу додатка і активізуйте форму frmText у вікні дизайнера.

4. Двічі клацніть на перемикачі Встановити курсор після 5 символу, щоб викликати вікно програми з кодом процедури:

Private Sub optInsert_Click()

'встановити курсор після 5 символу

txtDisplay.SelStart = 5

' передати фокус текстовому полю

'щоб зміни були наочно видні

txtDisplay.SetFocus

End Sub

Властивість SelStart визначає початкову позицію (у символах) виділеного фрагмента текстового поля. В даному випадку виділення повинне починатися з 5-го символу. Метод SetFocus повертає фокус введення текстовому полю txtDisplay.

5. Відкрийте процедуру події Click перемикача optSelect:

Private Sub optSelect_Click()

'встановити курсор в початок

txtDisplay.SelStart = 0

' визначити довжину рядка і виділити

'відповідна кількість символів

txtDisplay.SelLength = Len(txtDisplay.Text)

'передати фокус текстовому полю, -

'щоб зміни були наочно видні

txtDisplay.SetFocus

End Sub

На прикладі цього фрагмента видно, як виділити увесь вміст текстового поля в програмі. Якби в меню була присутній команда Select All, її процедура була б схожа на цей фрагмент. Якщо ви хочете дізнатися, який текст виділений в полі, звертайтеся до властивості SelText.

Замініть процедуру події cmdClose_Click наступній:

Private Sub cmdClose_Click()

If txtDisplay.SelLength > 0 Then

MsgBox «Виділений текст» & txtDisplay.SelText

End If

End ' Вивантажити форму

End Sub

7. Запустіть додаток. У діалоговому вікні TextBox Properties виділите слово Multiline і натисніть кнопку Close. Зразковий вид екрану зображений на мал. 3.4.

Мал. З.4. Виділений фрагмент у властивості SelText. Написи

Напис (див. малюнок) частково схожий на текстове поле - вона теж використовується для виведення тексту. Головна відмінність полягає в тому, що користувач не може змінити текст напису на власний розсуд (хоча його можна змінити як властивість під час виконання програми).

Н айважливіша властивість напису - Caption (а не Text, на відміну від текстового поля). Написи часто містять довідкову інформацію. Вони можуть використовуватися як самостійно, так і у вигляді «підказок» для текстового поля, списку або іншого елементу. У останньому випадку напис коротко описує елемент. Наприклад, якщо на вашій формі знаходиться текстове поле для введення імені клієнта, ліворуч або згори від нього можна розмістити напис і встановити його властивості Caption значення Ім'я клієнта.

Призначення клавіш прискореного виклику для написів

Клавішами прискореного виклику називаються поєднання типу Alt+клавіша. Натискаючи Alt разом з підкресленою буквою текстового елементу, користувач може швидко перейти до нього. Клавіші прискореного виклику можна призначати лише тим елементам, у яких є властивість Caption, наприклад кнопкам або командам меню. Багато елементів (наприклад, текстові поля) не мають властивості Caption, тому ви не зможете швидко перейти до них з клавіатури - доводиться перебирати елементи клавішею Tab до тих пір, поки не знайдете потрібний.

Можливий вихід з положення полягає в тому, щоб помістити напис перед потрібним елементом. Простежите за тим, щоб властивість Tablndex напису була на одиницю менше властивості того елементу, до якого відноситься напис. Вставте символ «амперсенд» (&) у властивість Caption напису перед символом, що визначає клавішу прискореного виклику.

Продемонструємо сказане на прикладі:

1. Відкрийте проект Controls.vbp, якщо він не був відкритий раніше.

2. Двічі клацніть на формі frmText у вікні проекту, щоб активізувати її.

3. Клацніть на текстовому полі txtDisplay, розташованому в лівій верхній частині форми, і знайдіть його властивість Tablndex у вікні властивостей. Значення цієї властивості має дорівнювати 0, щоб елемент став першим в порядку перебору.

4. Помістите на форму напис і розташуєте його над полем txtDisplay. У вікні властивостей задайте її властивості Name значення IblDisplay. Задайте властивості Caption значення Dis&play. He забудьте про амперсенд перед буквою Р.

5. Властивість Tablndex напису IblDisplay повинна мати значення 11. Встановіть його значення в 0.

6. Запустіть програму командою Run > Start.

7. На формі Control Example натисніть кнопку Text Button.

8. На формі TextBox Properties натисніть кнопку Reset, щоб прибрати фокус з поля txtDisplay.

9. Натисніть клавішу Alt і, не відпускаючи її, клавішу Р.

Якщо тепер одночасно натиснути Alt і підкреслену букву, фокус перейде до напису. Проте при перегляді властивостей, подій і методів написів (см далі) виявляється, що у написів немає властивості TabStop, подій GotFocus або LostFocus або методу SetFocus. Це означає, що передати фокус напису неможливо, отже, при передачі фокусу напису з клавішею прискореного виклику насправді фокус передається наступному елементу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]