Обработчик событий для открытия файла

Следующей по очереди на инструментальной панели находится кнопка открытия файла – команда LoadT. Рассмотрим порядок действий при написании этого обработчика события.

Для того чтобы реализовать в нашем приложении обработчик открытия файла, нам потребуется элемент OpenFileDialog. Перетащим значок этого элемента из окна Toolbox в окно нашей формы. Значок элемента OpenFileDialog1 появится внизу на панели под нашей формой (смотри рисунок 5.1).

Рисунок 5.1 – Подключение элемента OpenFileDialog

Использование элемента OpenFileDialog (особенно в части диалога) это целая технология программирования, позволяющая просто обращаться к дискам, папкам и файлам нашего компьютера. Как и любой элемент окна Toolbox он представлен классом, имеющим множество методов для работы с файлами, например, метод openFileDialog1.ShowDialog, отображает на экране стандартное диалоговое окно выбора файла (смотри рисунок 5.2), в котором можно «путешествовать» по компьютеру в поисках нужного файла.

Настраивая свойства элемента openFileDialog1, можно задать фильтр имен открываемых файлов. Для этого необходимо элементу openFileDialog1 в окне Properties изменить свойство Filter. Присвойте этому свойству следующую текстовую строку:

Text files|*.txt|RTF files|*.rtf| All files|*.*

Строка фильтра состоит из блоков, разделенных символом «|». Первый блок задает название типа файла Text files, а второй— маску для имен файлов. Для текстовых файлов применяется маска *.txt.

Далее следует название формата RTF files. Для RTF используется маска *.rtf.

И, наконец, чтобы приложение могло открывать файлы любых типов (All files), используется маска *.* (пример на рисунке 5.2).

Рисунок 5.2 – Работа программы при открытии диалогового окна

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

Дополнение к исходному коду программы:

private void loadTToolStripMenuItem_Click(object sender,

EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK &&

openFileDialog1.FileName.Length > 0)

{

try

{

richTextBox1.LoadFile(openFileDialog1.FileName,

RichTextBoxStreamType.PlainText);

}

catch (System.ArgumentException ex)

{

richTextBox1.LoadFile(openFileDialog1.FileName,

RichTextBoxStreamType.RichText);

}

this.Text = "Файл [" + openFileDialog1.FileName + "]";

}

}

Если в окне выбора файла пользователь щелкнул кнопку Открыть, метод ShowDialog возвращает значение DialogResult.OK. В условие включена дополнительная проверка, что файл был выбран (длина строки полного пути к выбранному файлу openFileDialog1.FileName.Length должна быть больше нуля).

При открытии файла методом richTextBox1.LoadFile ему передается два параметра. В качестве первого параметра этому методу передается путь к файлу, а в качестве второго — тип файла.

Поскольку мы должны работать с текстовыми файлами, то основным типом является RichTextBoxStreamType.PlainText.

В том случае, если выбранный файл имеет формат, отличный от PlainText в методе LoadFile возникает исключение System.ArgumentException и наш обработчик выполняет повторную попытку загрузить файл, но на этот раз уже как файл типа RichText. Этот тип соответствует формату RTF.

Дополнительно, для информации, полный путь к открытому файлу будет отображен в заголовке главного окна нашего приложения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: