Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 07. Стандартні компоненти- модальні вікн...docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
76 Кб
Скачать
☆

7.1. Відкриття файлу - OpenFileDialog

Додамо на форму діалог OpenFileDialog з вікна панелі інструментів ToolBox.

Переходимо в код форми. Підключаємо простір імен для роботи з файловими потоками:

using System.IO;

Реалізуємо код діалогу відкриття файлу у вигляді закритого методу OpenDocument() для того, щоб викликати його з меню і з панелі інструментів, не дублюючи код.

Лістинг 7.2.

//Відкрити документ

private void OpenDocument()

{

openFileDialog1.FileName = string.Empty;

// Відобразити діалог відкриття файлу

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

{

fn = openFileDialog1.FileName;

// відобразити им'я файла у заголовку вікна

this.Text = fn;

try

{

// читання даних з файлу

System.IO.StreamReader sr =

new System.IO.StreamReader(fn);

textBox1.Text = sr.ReadToEnd();

textBox1.SelectionStart = textBox1.TextLength;

sr.Close();

}

catch (Exception exc)

{

MessageBox.Show("Помилка читання файла.\n" + exc.ToString(), "NkEdit",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

}

}

В цьому методі команда

openFileDialog1.ShowDialog

відкриває вікно діалогу для пошуку і відкриття файлів. В змінній FileName повертається назва вибраного файлу. В об'єкті DialogResult. повертається true, якщо користувач натиснув кнопку OK.

Отже, якщо користувач натиснув кнопку OK, змінній fn призначається значення FileName, виконується читання файлу в текстове поле редактора.

При помилці читання файлу генерується переривання (виключення) і керування переходить в блок catch обробки переривання.

Додаємо обробник для команди меню Відкрити:

//Відкрити...

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

{

OpenDocument();

}

Такий саме обробник додаємо для кнопки панелі інструментів

private void openToolStripButton_Click(object sender, EventArgs e)

{

OpenDocument();

}

7.2. Збереження файлу - SaveFileDialog

Для збереження файлів додаємо на форму елемент управління saveFileDialog1. Властивості цього діалогу такі самі, як в OpenFileDialog. Роботу з цим діалогом реалізуємо в методі SaveDocument.

Лістинг 7.3.

// Зберегти документ - закритий метод

private int SaveDocument()

{

int result = 0;

if (fn == string.Empty)

{

// відобразити діалог Зберегти

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

// відобразити им'я файла у заголовку вікна

fn = saveFileDialog1.FileName;

this.Text = fn;

}

else result = -1;

}

// зберегти файл

if (fn != string.Empty)

{

try

{

// отримуємо інформацию про файл fn

System.IO.FileInfo fi = new System.IO.FileInfo(fn);

// створюємо потік для запису (перезаписуємо файл)

System.IO.StreamWriter sw = fi.CreateText();

// записуємо дані

sw.Write(textBox1.Text);

// закриваємо потік

sw.Close();

result = 0;

}

catch (Exception exc)

{

MessageBox.Show(exc.ToString(), "NkEdit",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

}

return result;

}

Додаємо обробник для команди меню Зберегти:

//Зберегти...

private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)

{

SaveDocument();

}

Такий саме обробник додаємо для кнопки панелі інструментів

//кнопка Зберегти (save) - використовуємо закритий метод SaveDocument();

private void saveToolStripButton_Click(object sender, EventArgs e)

{

SaveDocument();

}