Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для сохранения файлов добавляем на форму 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!