назад | содержание | вперед

Управление текстом в объекте TextBox

Программа Visual Basic позволяет во время выполнения программы управлять текстом, отображаемым в текстовом поле, с помощью свойств SelStart, SelLength И SelText.

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

Используя свойство Seistart объекта TextBox, можно указать место размещения курсора в поле при установке фокуса. Значение 0 соответствует крайней левой позиции. Свойство SelLength задает ширину точки ввода. По умолчанию она равна 0, т. е. в том месте, где курсор установлен, можно начинать ввод символов, не удаляя расположенной в нем информации. Рассмотрим следующий пример. Необходимо, чтобы в форме, предназначенной для ввода данных, размещенные данные замещались новой информацией. Для этого при установке фокуса на поле символы должны выделяться инверсным цветом (рис. 8.4) и при вводе данных удаляться. Свойство SelText позволяет задать текст, который заменит во время выполнения программы выделенный фрагмент.

Рассмотрим пример создания небольшого приложения, содержащего форму, представленную на рис. 8.4. Форма содержит заголовок и текстовое поле, в котором при установке фокуса выделяется размещенный в нем по умолчанию текст. При создании приложения будем использовать рассмотренные нами элементы управления Label и TextBox.

Рис. 8.4. Программное выделение информации, размещенной в текстовом поле

1. Для создания нового приложения в меню File (Файл) выберите команду New Project (Новый проект). Открывается окно Project с расположенной в нем новой формой.

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

3. Откройте окно свойств. Для этого щелкните правой кнопкой мыши на созданном объекте и выберите в контекстном меню команду Properties.

4. Выделите свойство caption (Надпись) и введите в правом столбце текст заголовка.

5. Чтобы сохранить первоначальную ширину заголовка и расположить текст в две строки, установите для свойства wordwrap значение True.

6. Для задания точной ширины заголовка присвойте свойству Autosize значение True.

7. По умолчанию текст заголовка выровнен по левому краю. Чтобы его отцентрировать, выделите свойство Alignment (Выравнивание). Затем в правом столбце нажмите кнопку раскрытия списка и выберите из него значение Center.

8. Для задания используемого в оформлении заголовка наименования шрифта, его размера и начертания воспользуйтесь свойством Font (Шрифт). Нажмите в правом столбце свойства кнопку с тремя точками и в открывшемся диалоговом окне Выбор шрифта установите необходимые параметры.

9. Разместим теперь в форме текстовое поле. Нажмите на панели элементов управления кнопку TextBox, установите курсор в форму и нарисуйте рамку требуемого размера.

10. Чтобы задать текст, отображаемый в текстовом поле при выполнении формы, выделите свойство Text и введите в правом столбце требуемый текст, например, Текстовое поле.

11. Так как мы хотим, чтобы при установке фокуса на текстовое поле в нем выделялся размешенный текст, необходимо создать процедуру обработки события. Для открытия окна редактора кода дважды щелкните мышью на объекте TextBox.

12. В окне редактора кода из списка Object выбрано значение Text1, указывающее наименование текстового поля. Выберите из правого списка Procedure значение GotFocus, позволяющее задать процедуру обработки события получения текстовым полем фокуса.

13. В области создания процедуры между операторами private sub Text1_Got Focus () и End Sub расположите следующие команды:

Text1.SelStart = 0

Text1.SelLength = Len(Text1.Text)

Первая команда задает начальное положение выделяемого в поле текста. Вторая команда процедуры задает длину выделяемого фрагмента текста. Используемая в ней функция Len вычисляет длину текста, размещенного в текстовом поле и заданного свойством Text. На рис. 8.5 показано окно редактора кода с введенными командами.

Рис. 8.5. Окно редактора кода

Совет

Если вы хотите во время выполнения программы заменить выделенную в текстовом поле информацию другим текстом, то можете использовать свойство SelText и вставить в процедуру следующую команду: Text1.SelText = "Информация, вводимая с помощью свойства SelText". В кавычках располагается размещаемый в текстовом поле новый текст.

14. После ввода текста процедуры закройте окно редактора кода, выбрав команду Close системного меню окна или нажав кнопку Закрыть, расположенную в верхнем правом углу заголовка окна.

15. Запустите программу на выполнение, выбрав в меню Run команду Start или нажав клавишу <F5>. Результат представлен на рис. 8.4. Информация в текстовом поле выделена, и вы можете сразу же вводить на ее место новую.

 

 

назад | содержание | вперед