Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Работа с текстовыми полями






Следующий пример показывает, как используется на практике метод SetFocus:

1. Откройте проект \MSDN98\98vs\1033\Samples\VB98\Controls\Controls.vbp, если он не был открыт ранее.

2. Запустите приложение командой Run > Start. В диалоговом окне Control Examples нажмите кнопку Text Box. На экране появляется форма, похожая на рис. 3.3.

Устанавливая различные переключатели в рамке, можно выполнять некоторые операции с левым текстовым полем. Свойство Multiline правого поля установлено в True, в этом нетрудно убедиться по внешнему виду текста. В приложениях, работающих с текстами, нередко используются текстовые поля с активизированными свойствами Multiline и ScrollBars. В таких случаях текстовое поле растягивается

 

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

 

на всю форму, а ее размер фиксируется (свойством 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.

6. Замените процедуру события cmdClose_Click следующей:

 

Private Sub cmdClose_Click()

If txtDisplay.SelLength > 0 Then

MsgBox " Выделен текст" & txtDisplay.SelText

End If

End ' Выгрузить форму

End Sub

 

7. Запустите приложение. В диалоговом окне Text Box Properties выделите слово Multiline и нажмите кнопку Close. Примерный вид экрана изображен на рис. 3.4.

 

Рис. З.4. Выделенный фрагмент в свойстве SelText

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.