Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

SaveFileDialog



Для сохранения файлов добавляем на форму frmmain элемент управления saveFileDialog1. Cвойства этого диалога в точности такие же, как у OpenFileDialog (рис. 2.12). Переходим в код формы blank:

//Создаем метод Save, в качестве параметра объявляем строку адреса файла.

public void Save(string SaveFileName)

{

//Если файл не выбран, возвращаемся назад (появится встроенное предупреждение)

if (SaveFileName == "")

{

return;

}

else

{

//Создаем новый объект StreamWriter и передаем ему переменную //OpenFileName

StreamWriter sw = new StreamWriter(SaveFileName);

//Содержимое richTextBox1 записываем в файл

sw.WriteLine(richTextBox1.Text);

//Закрываем поток

sw.Close();

//Устанавливаем в качестве имени документа название сохраненного файла

DocName = SaveFileName;

}

}

2.6.

Добавляем обработчик пункта меню Save формы frmmain:

private void mnuSave_Click(object sender, System.EventArgs e)

{

//Можно программно задавать доступные для обзора расширения файлов

//openFileDialog1.Filter = "Text Files (*.txt)|*.txt|All Files(*.*)|*.*";

//Если выбран диалог открытия файла, выполняем условие

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

{

//Переключаем фокус на данную форму.

blank frm = (blank)this.ActiveMdiChild;

//Вызываем метод Save формы blank

frm.Save(saveFileDialog1.FileName);

//Указываем, что родительской формой является форма frmmain

frm.MdiParent = this;

//Присваиваем переменной FileName имя сохраняемого файла

frm.DocName = saveFileDialog1.FileName;

//Свойству Text формы присваиваем переменную DocName

frm.Text = frm.DocName;

}

}

Запускаем приложение. Теперь файлы можно открывать, редактировать и сохранять. Однако, при сохранении внесенных изменений в уже сохраненном файле вместо его перезаписи вновь появляется окно SaveFileDialog. Изменим нашу программу так, чтобы можно было сохранять и перезаписывать файл. В конструкторе формы frmmain после InitializeComponentотключим доступность пункта меню Save:

mnuSave.Enabled = false;

Переключаемся в режим дизайна формы frmmain и добавляем пункт меню Save As после пункта Save. Устанавливаем следующие свойства этого пункта: Name — mnuSaveAs, Shortcut — CtrlShiftS, Text Save &As. В обработчике Save As вставляем вырезанный обработчик пункта Save и добавляем включение доступности Save:

mnuSave.Enabled = true;

Сохранять изменения требуется как в только что сохраненных документах, так и в документах, созданных ранее и открытых для редактирования. Поэтому добавим в метод Open включение доступности пункта меню Save:

private void mnuOpen_Click(object sender, System.EventArgs e)

{

mnuSave.Enabled = true;

}

В обработчике пункта Save добавим простую перезапись файла — вызов метода Save формы blank:

private void mnuSave_Click(object sender, System.EventArgs e)

{

//Переключаем фокус на данную форму.

blank frm = (blank)this.ActiveMdiChild;

//Вызываем метод Save формы blank

frm.Save(frm.DocName);

}

Запускаем приложение. Теперь, если мы работаем с несохраненным документом, пункт Save неактивен (рис. 2.14), после сохранения он становится активным (рис. 2.15) и, кроме того, работает сочетание клавиш Ctrl+S. Можно сохранить копию текущего документа, вновь воспользовавшись пунктом меню Save As (рис. 2.16).


Рис. 2.14. Новый документ


Рис. 2.15. Сохраненный документ


Рис. 2.16. Сохранение копии

Конечно, эту задачу можно решить более элегантно — совместив оба пункта сохранения документа в один. Но мне хотелось показать разницу между простым сохранением и перезаписью файлов, кроме того, мы научились отключать доступность пунктов меню.





Дата публикования: 2014-12-11; Прочитано: 215 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...