Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Робота з текстовими полями
Наступний приклад показує, як використовується на практиці метод SetFocus: 1. Відкрийте проект \MSDN98\98vs\1033\Samples\VB98\Controls\Controls.vbp, якщо він не був відкритий раніше. 2. Запустіть додаток командою Run > Start. У діалоговому вікні Control Examples натисніть кнопку TextBox. На екрані з'являється форма, схожа на мал. 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.
|