- •Создание Windows-приложения «Редактор текста» в среде разработки Visual Studio содержание
- •Создание редактора текста
- •Добавление меню
- •Переименование меню и строк меню
- •Вставка поля редактирования
- •Обработка событий
- •Работа с файлами документа
- •Создание нового документа
- •Открытие существующего файла
- •Сохранение файла
- •Печать документа
- •Печать документа Добавление программных компонентов для печати
- •Настройка параметров страницы документа
- •Предварительный просмотр документа перед печатью
- •Отображение окна печати документа
- •Закрытие главного окна редактора текста
- •Закрытие главного окна формы
- •Реализация функция меню «правка»
- •Реализация функций меню «правка»
- •Реализация функций меню формат
- •Шрифт символов
- •Цвет символов
- •Стиль символов
- •Выравнивание параграфов
- •Реализация функций меню «справка»
- •Добавление новой формы
- •Отображение формы
- •Создание инструментальной панели
- •Добавление инструментальной панели в окно приложения
- •Добавление изображений в проект.
- •Редактирование кнопок инструментальной панели
- •Строка состояния
- •Строка состояния
Работа с файлами документа
Создание нового документа
Если пользователь выберет строку Новый из меню Файл, наш редактор текста SimpleNotepad должен создать новый текстовый документ. В простейшем случае для этого достаточно просто очистить содержимое окна редактирования, вызвав метод Clear:
private void menuFileNew_Click(object sender, EventArgs e)
{
richTextBoxStream.Clear();
}
Метод Clear вызывается для объекта richTextBoxStream, т.е. для нашего окна редактирования, занимающего все пространство формы.
Открытие существующего файла
Для того чтобы реализовать в нашем редакторе текста функцию открытия файла, нам потребуется компонент OpenFileDialog. Перетащите значок этого компонента из панели Toolbox в рабочее окно дизайнера формы.
Значок компонента OpenFileDialog будет показан в нижней части формы (рисунок 2.1), причем этот компонент получит идентификатор openFileDialog1. Этот идентификатор будет использован нами в программном коде, открывающем исходный файл.
Рисунок 2.1 - Добавление компонента OpenFileDialog
Добавьте в класс SimpleNotepadForm новый метод MenuFileOpen, предназначенный для открытия существующего файла. Вот его исходный текст:
Если в окне выбора файла пользователь щелкнул кнопку Open, метод ShowDialog возвращает значение System.Windows.Forms.DialogResult.OK. В этом случае мы также дополнительно проверяем, что файл был выбран. Для этого мы сравниваем длину строки полного пути к выбранному файлу openFileDialog1.FileName.Length с нулем:
if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK && openFileDialog1.FileName.Length > 0) { … }
В том случае, когда пользователь выбрал файл, метод MenuFileOpen предпринимает попытку загрузить этот файл в редактор richTextBox1, вызывая для этого метод LoadFile:
try { richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.RichText); } catch (System.ArgumentException ex) { richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText); }
В качестве первого параметра этому методу передается путь к файлу, а в качестве второго — тип файла RichTextBoxStreamType.RichText. Этот тип соответствует формату RTF.
В том случае, если выбранный файл имеет формат, отличный от RTF, в методе LoadFile возникает исключение System.ArgumentException. Наш обработчик этого исключения выполняет повторную попытку загрузить файл, но на этот раз уже как обычный текст. Для этого мы передаем в качестве второго параметра методу LoadFile значение
RichTextBoxStreamType.PlainText.
Если все сделано правильно, то после трансляции исходного приложения редактор сможет открывать существующие файлы для редактирования.
Как работает метод MenuFileOpen ?
Получив управление, он вызывает метод openFileDialog1.ShowDialog, отображающий на экране стандартное диалоговое окно выбора файла (рисунок 2.2).
Рисунок 2.2 - Стандартное диалоговое окно выбора файла
Настраивая свойства компонента openFileDialog1, можно изменять внешний вид этого окна.
Задайте фильтр имен открываемых файлов. Для этого выделите компонент openFileDialog1 в окне дизайнера форм левой клавишей мыши, а затем измените свойство Filter. Присвойте этому свойству следующую текстовую строку:
RTF files|*.rtf|Text files|*.txt|All files|*.*
Строка фильтра состоит из блоков, разделенных символом |.
Первый блок задает название типа файла RTFfiles, отображаемое в поле Files of type диалогового окна выбора файла (рисунок 14), а второе — маску для имен файлов. Таким образом, для открытия документов RTF используется маска *.rtf.
Далее следует название формата Text files, соответствующее обычным текстовым файлам. Для этого формата применяется маска *.txt.
И, наконец, чтобы приложение могло открывать файлы любых типов (All files), используется маска *.*.
Продолжим работу. Оттранслируйте и запустите наше приложение. Выбрав с помощью только что описанного окна текстовый файл или файл RTF, щелкните кнопку Open. Выбранный файл будет загружен в окно нашего редактора текста (рисунок 2.3).
Рисунок 2.3 - Загружен файл для редактирования
Полный путь к редактируемому файлу будет отображен в заголовке главного окна нашего приложения.