Читайте также:
|
|
Следующий пример показывает, как используется на практике метод 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
Дата добавления: 2015-07-20; просмотров: 70 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Свойства текстовых полей | | | Свойства надписей |