- •Ю.Е. Алексеев, а.В. Куров
- •Часть 5
- •Алексеев Юрий Евтихович Куров Андрей Владимирович
- •14. Классы
- •15. Создание проекта
- •15.1 Помещение компонент на форму
- •15.2 Окно сведений об объекте
- •15.3 Редактор кода
- •15.4 Основные компоненты визуальной среды программирования
- •15.5 Лабораторная работа №1. Освоение среды визуального программирования на примере создания приложения для вычисления значения определенного интеграла
- •15.6 Задания для самостоятельной работы
- •15.7 Лабораторная работа n2. Работа с текстовым файлом с использованием многострочного текстового редактора
- •Многострочный текстовый редактор RichTextBox
- •Компонент OpenFileDialog
- •Компонент SaveFileDialog
- •Компонент главное меню MenuStrip
- •Окно сообщений MessageBox
- •Порядок выполнения лабораторной работы.
- •15.8 Задания на обработку текстовых файлов Общее указание для всех вариантов
- •Д обавляемые подпункты меню Работа1 и Работа2 по вариантам
- •15.9 Лабораторная работа n3. Работа с бинарным файлом с использованием таблицы DataGridView
- •Порядок выполнения лабораторной работы.
- •Примеры обработчиков событий.
- •15.10 Задания на обработку бинарных файлов Общее указание для всех вариантов
- •Д обавляемые подпункты меню Работа1 и Работа2 по вариантам
- •Список литературы
- •Алфавитный указатель
- •Вопросы для самопроверки
- •Заключение
15.6 Задания для самостоятельной работы
1. Составить приложение для вычисления приближенных значений определённого интеграла (см. таблицу ниже) тремя предложенными методами (прямоугольников, трапеций, парабол). Пределы интегрирования a и b, а также число N подынтервалов задавать при вводе.
2. Дополнить разработанное приложение вычислением интеграла с заданной точностью. Обеспечить ввод точности, вывести полученные значения интеграла и количество разбиений для каждого метода.
Таблица 3.
-
№
Подынтегральная функция
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
15.7 Лабораторная работа n2. Работа с текстовым файлом с использованием многострочного текстового редактора
В рамках второй лабораторной работы выполняется задание по обработке текстового файла, при этом для отображения информации, хранящейся в файле, предусматривается использование в качестве элемента интерфейса многострочного текстового редактора RichTextBox. Выбор конкретной операции по обработке файла целесообразно выполнять с помощью пунктов меню (элемент MenuStrip). Выбор имени файла при открытии и сохранении удобно выполнять с помощью диалоговых окон (элементы OpenFileDialog и SaveFileDialog). Таким образом, необходимо рассмотреть основные свойства и методы перечисленных элементов интерфейса. Материал по работе с текстовыми файлами изложен в предыдущей части пособия [4].
Многострочный текстовый редактор RichTextBox
Компонент находится в разделе Common Controls палитры компонентов Toolbox в разделе Common Controls. Для нанесения компонента на форму необходимо щелкнуть левой кнопкой мыши в палитре компонентов на элемент RichTextBox, а затем, переведя курсор мыши на форму, щелкнуть левой кнопкой на форме, после чего можно, потянув за анкерные точки, придать текстовому редактору нужные размеры.
Перечислим основные свойства компонента:
-Name - получает или задает идентификационное имя элемента. Имя позволяет обращаться из кода программной части, например, из кода обработчика событий;
- FontFamily - получает или задает семейство шрифтов элемента управления;
- FontSize - получает или задает размер шрифта;
- FontStyle - получает или задает стиль шрифта;
- HorizontalScrollBarVisibility - возвращает или задает значение, указывающее, отображается ли горизонтальная полоса прокрутки;
- VerticalScrollBarVisibility - возвращает или задает значение, указывающее, отображается ли вертикальная полоса прокрутки;
- ScrollBars - позволяет ввести полосы прокрутки. Используется при многострочном режиме, когда строки не помещаются в отведенное пространство редактора. Вид полос прокрутки выбирается из выпадающего списка. При этом надо следить за свойством WordWrap (если разрешен перенос текста на следующую строку, то горизонтальная полоса не появится);
- WordWrap - задает возможность автоматического переноса символов в начало следующей строки (без нажатия клавиши Enter);
- Lines – массив строк – содержимое текстового редактора;
- Text – текст, представленный в редакторе.
Из большого количества событий практическое значение имеет событие TextChanded - генерируется при любом изменении содержимого редактора или форматирования (например, изображений, таблиц или фонового цвета).
Основные методы компонента следующие:
- AppendText (String ^s)– добавление текста к текущему тексту;
- Clear – удаляет текущее выделение текста из элемента управления, поддерживающего редактирование текста, и копирует его в буфер обмена;
- Copy – копирует текущее выделение текста в элементе управления, поддерживающем редактирование текста, в буфер обмена;
- Cut – вырезка отмеченного множества строк из поля ввода/вывода и помещение их в буфер памяти;
- Focus – установка фокуса ввода на компонент;
- Hide – установка компонента в невидимое состояние;
- Paste – замена текущего выбранного участка текста содержимым буфера памяти; Вставляет текущее содержимое буфера обмена на место текущего выделения в элементе управления, поддерживающем редактирование текста;
- SelectAll – выделяет все содержимое текстового элемента управления, поддерживающего редактирование текста;
- Show – установка компонента в видимое состояние;
- Undo – отмена последней операции редактирования в поле компонента.
При работе с текстовыми файлами полезными являются два метода редактора LoadFile и SaveFile. Первый метод позволяет загрузить содержимое текстового файла в редактор, а второй – сохранить содержимое редактора в текстовом файле. Заголовки методов следующие
void LoadFile( String^ path, RichTextBoxStreamType fileType);
void SaveFile( String^ path, RichTextBoxStreamType fileType);
Первый параметр задает имя файла, а второй параметр – тип загружаемого файла.
Значения второго параметра могут быть следующими:
RichText - поток в формате RTF.
PlainText - поток открытого текста с пробелами вместо объектов OLE.
RichNoOleObjs - поток в формате RTF с пробелами вместо объектов OLE. Это значение действительно только для использования с методом SaveFile элемента управления RichTextBox.
TextTextOleObjs - поток открытого текста с текстовым представлением объектов OLE. Это значение действительно только для использования с методом SaveFile элемента управления RichTextBox.
UnicodePlainText - поток текста с пробелами вместо объектов OLE. Текст в кодировке Юникод.
С помощью метода LoadFile содержимое загружаемого файла замещает все содержимое элемента управления RichTextBox. С помощью этого метода можно загрузить предварительно созданный текст или RTF-документ в элемент управления для дальнейшей с ним работы.
Эта версия метода LoadFile позволяет указать тип загружаемого файла и обеспечивать возможность загружать в элемент управления иные, чем RTF-документы, файлы.
В следующем примере кода текстовый
файл открывается в элементе управления
RichTextBox. Для вывода на экран
диалогового окна с запросом файла от
пользователя в примере используется
класс OpenFileDialog. Затем код
загружает этот файл в элемент управления
RichTextBox. В примере эта
версия метода LoadFile
используется для указания того, что
файл должен быть открыт как текстовый
файл в кодировке ASCII, а не в стандартном
формате RTF. В примере предполагается,
что код размещается в классе объекта
Form, содержащем элемент
управления RichTextBox с именем
richTextBox1.
void LoadMyFile()
{
OpenFileDialog^ openFile1 = gcnew OpenFileDialog;
openFile1->DefaultExt = "*.rtf";
openFile1->Filter = "RTF Files|*.rtf";
if ( openFile1->ShowDialog() == System::
Windows::Forms::DialogResult::OK &&
openFile1->FileName->Length > 0)
{
richTextBox1->LoadFile( openFile1->FileName, RichTextBoxStream
Type::PlainText );
}
}
Метод SaveFile позволяет сохранять все содержимое элемента управления в RTF-файл, который можно будет использовать в других программах, таких как Microsoft Word и Windows WordPad. Если имя файла, переданное параметру path, уже существует в указанной папке, старый файл будет замещен без предупреждения. Метод LoadFile позволяет загрузить содержимое файла в элемент управления RichTextBox.
Эта версия метода SaveFile позволяет также указать тип файла, в который будет сохранено содержимое элемента управления. Эта возможность позволяет обеспечить сохранение файла в правильном формате, в зависимости от содержимого элемента управления. Например, если в документе используется один шрифт или цвет, его можно сохранить в формате текстового файла в кодировке ASCII, присвоив параметру fileType значение RichTextBoxStreamType.PlainText.
В следующем примере осуществляется сохранение содержимого элемента управления RichTextBox в ASCII-файл. В примере для вывода на экран диалогового окна с запросом пути и имени файла у пользователя используется класс SaveFileDialog. Затем код сохраняет содержимое элемента управления в этот файл. В примере эта версия метода SaveFile используется для указания того, что файл должен быть сохранен как текстовый файл в кодировке ASCII, а не в стандартном формате RTF. В примере предполагается, что код размещается в классе Form, содержащем элемент управления RichTextBox с именем richTextBox1.
void SaveMyFile()
{
SaveFileDialog^ saveFile1 = gcnew SaveFileDialog;
saveFile1->DefaultExt = "*.rtf";
saveFile1->Filter = "RTF Files|*.rtf";
if ( saveFile1->ShowDialog()
== Sytem::Windows::Forms::DialogResult::OK
&& saveFile1->FileName->Length > 0 )
{
richTextBox1->SaveFile( saveFile1->FileName
, RichTextBoxStreamType::PlainText );
}
}
