
- •Часть 2. Сборник рецептов по визуальному программированию Введение в объектно-ориентированное программирование
- •Создание проекта в VisualStudio
- •Файлы проекта
- •Сведения об объекте
- •Общие свойства всех объектов
- •Класс Form
- •Помещение компонента в форму и прочие действия с дизайнером форм
- •Свойства форм
- •События формы
- •Методы формы
- •Компоненты ввода и отображения текстовой информации Компонент Label
- •Некоторые свойства компонента Label
- •Компонент TextBox
- •Методы TextBox
- •Компонент RichTextBox
- •Ввод числовых значений в компонент TextBox
- •Проверка, введены ли значения
- •Компонент ListBox
- •Компонент ComboBox
- •Ввод данных из файла
- •Компонент MaskedTextBox
- •Кнопки, индикаторы и управляющие элементы Компонент Button
- •Компонент Panel
- •Компоненты RadioButtonиCheckBox
- •Компонент GroupBox
- •Пример. Комплектация автомобиля
- •Работа с меню Главное меню
- •Контекстное меню
- •Создание текстового редактора
- •Системные диалоги
- •Компонент OpenFileDialog
- •Компонент SaveFileDialog
- •Диалог выбора шрифта
- •Диалог выбора цвета
- •Компонент PrintDialog
- •Диалоговые окна в текстовом редакторе
- •Расширенные символы Unicode
- •Работа с графикой Использование графических файлов
- •Создание фотоальбома
- •Методы для рисования на форме и прочих компонентах
- •Работа с таймером
- •Работа с датой и временем
- •Добавление новых форм к проекту
- •Многостраничные панели
- •Способы задания страниц
- •Методы TabControl
Методы TextBox
Приведем перечень некоторых методов компонента.
AppendText– добавляет текст к текущему тексту в окне компонента.
Clear– удаляет весь текст из поля ввода/вывода.
Copy– копирует выбранные строки в буфер памяти.
CreateGraphics– с помощью этого метода можно создать графический объект для рисования на компоненте.
Cut– вырезает отмеченное множество строк в поле ввода/вывода и помещает их в буфер памяти.
DeselectAll– снимает выделение в компоненте.
Focus– устанавливает фокус ввода в компоненту.
Hide– прячет компонент от пользователя.
Paste– заменяет текущий выделенный фрагмент в поле ввода/вывода содержимым буфера памяти.
Select– выбирает заданный текст внутри компонента.
SelectAll– выбирает весь текст внутри компонента.
Show– делает компонент видимым.
Undo– отменяет последнюю операцию редактирования в поле ввода.
Вызов метода происходит по следующей форме:
this->TextBox1->имя_метода();
Еще один способ вызова метода такой:
String ^s=”Дополнительный текст!”;
this->TextBox1->AppendText(s);
Заметим, что форма вызова метода полностью зависит от структуры метода.
Компонент RichTextBox
Компонент находится в списке CommonControlsпалитры компонентов.
Этот компонент представляет собой окно редактирования в стиле Windowsв форматеRTF, позволяющее выбирать атрибуты шрифта, поиск текста и многое другое. В остальном имеет те же свойства, события и методы, что иTextBox.
Пример
Рассмотрим пример создания простейшего приложения. Допустим, необходимо создать калькулятор, который рассчитывает стоимость заправки бензином на АЗС. В дальнейшем будем усложнять это приложение. Но на начальном этапе создадим окно с двумя компонентами TextBox, в первый (назовем егоlitr) будет вводиться стоимость литра бензина, во второй (назовем егоvol) – количество покупаемых водителем литров. ВMessageBoxпри нажатии на кнопку «Рассчитать» будет выведена стоимость заправки (рис.7).
Рис.7. Пример работы с текстовыми компонентами
Для того чтобы произвести расчет, необходимо написать обработчик события Clickдля компонентаButton. При этом в качестве перемножаемых значений воспользуемся информацией, помещенной в компонентыTextBox. Очевидно, что текст, содержащийся в этих компонентах, имеет строковый, а не числовой (в данном случае необходимо использоватьdouble) тип. Это означает, что необходимо выполнить преобразование типов. Данная операция выполняется с помощью методаToDouble. Код будет иметь следующий вид:
double l,v;
l=Convert::ToDouble(litr->Text);
v=Convert::ToDouble(vol->Text);
Далее производим расчет по формуле.
double s=l*v;
Для отображения полученной информации в свойстве Textкомпонента либо для вывода этого значения вMessageBoxтребуется выполнить обратное преобразование. Это осуществимо с помощью методаToString. Поэтому команда вывода результата в окно информационного окна будет выглядеть следующим образом.
MessageBox::Show("Стоимость заправки равна " +s.ToString("n")+" руб.", "Бензиновый калькулятор", MessageBoxButtons::OK, MessageBoxIcon::Asterisk);
Результат работы программы приведен на рис.8.
Рис.8. Программа расчета стоимости заправки
В данном случае осуществлялся перевод строки в вещественное число. При переводе строки в целое число используется метод Convert::ToInt32().
В качестве параметра метода ToString()в данном случае использован параметр«n», позволяющий представить информацию в числовом формате с разделителями групп разрядов. Допустимо также использовать параметр«c»-- денежный с разделителями групп разрядов и обозначением валюты и«f» -- числовой без разделителей групп разрядов.
Заметим также, что при обработке значений не производилось проверки правильности ввода. Методы преобразования типов также не выполняют этой функции. Способы проверки значений и установки ограничений на вводимые значения рассматриваются ниже.