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

Обработчики событий для работы с матрицей

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

Создание матрицы необходимо заканчивать выводом на экран сообщения об успешном окончании работы обработчика, например, «Матрица создана».

Результатом метода «Печать матрицы» является сама матрица, поэтому дополнительных сообщений не требуется.

Исходный код программы будет рассматриваться фрагментами по мере наполнения обработчиков событий.

Начальный исходный код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

public partial class Form1: Form

{

public static int[,] a = new int[6, 6];

public Form1()

{

InitializeComponent();

}

private void sozMToolStripMenuItem_Click(object sender,

EventArgs e)

{

Random rnd = new Random();

for (int i = 0; i < 6; i++)

for (int j = 0; j < 6; j++)

a[i, j] = rnd.Next() % 90 + 10;

richTextBox1.AppendText("Матрица создана \n");

}

private void printMToolStripMenuItem_Click(object sender,

EventArgs e)

{

string ss;

richTextBox1.AppendText("\n");

for (int i = 0; i < 6; i++)

{

ss = "";

for (int j = 0; j < 6; j++)

ss = ss + Convert.ToString(a[i, j]) + "\t";

richTextBox1.AppendText(ss + "\n");

}

}

...

Код остальных обработчиков событий пока «пустой».

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

Следующей по очереди инструментальной панели находится кнопка открытия файла – команда 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
Сейчас читают про: