Frm.Save(frm.DocName);
} Теперь, если мы работаем с несохраненным документом, пункт Save неактивен, после сохранения он становится активным и, кроме того, работает сочетание клавиш Ctrl+S. Можно сохранить копию текущего документа, вновь воспользовавшись пунктом меню Save As.
Сохранение файла при закрытии формы Всякий раз, когда мы закрываем документ Microsoft Word, в который внесли изменения, появляется окно предупреждения, предлагающее сохранить документ. Добавим аналогичную функцию в наше приложение. В классе blank создаем переменную, которая будет фиксировать сохранение документа: public bool IsSaved = false; В обработчик методов Save и Save As формы frmmain добавляем изменение значения этой переменной: private void mnuSave_Click(object sender, EventArgs e) { … frm.IsSaved = true; } private void mnuSaveAs_Click(object sender, EventArgs e) { … frm.IsSaved = true; } Переходим в режим дизайна формы blank и в окне свойств переключаемся на события формы, щелкнув на значок с молнией. В поле события FormClosed дважды щелкаем и переходим в код: private void blank_FormClosed(object sender, FormClosedEventArgs e) { if(IsSaved ==true) if(MessageBox.Show(" Do you want save changes in " + this.DocName + "? ", " Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==.DialogResult.Yes) //Если было Yes { This.Save(this.DocName); } } OpenFileDialog и SaveFileDialog для SDI-приложений При создании MDI-приложений приходится разделять код для открытия и сохранения файлов, как мы делали для приложения NotepadC#. В случае SDI-приложений весь код будет находиться в одном обработчике. Cоздаем новое приложение, называем его TextEditor. На форме размещаем элемент управления TextBox и устанавливаем следующие свойства:
Добавляем на форму элемент menuStrip1, в котором будет всего три пункта — File, Open и Save (свойства этих пунктов см. в таблице 6). Из окна ToolBox перетаскиваем элементы OpenFileDialog и SaveFileDialog — свойства этих элементов в точности такие же, как и у диалогов приложения NotepadC#. Переходим в код формы. Добавляем обработчик для пункта меню Open: private void mnuOpen_Click(object sender, EventArgs e){ OpenFileDialog1.ShowDialog(); String fileName = openFileDialog1.FileName; FileStream filestream= File.Open(fileName, FileMode.Open, FileAccess.Read); if(filestream! = null) { StreamReader streamreader = new StreamReader(filestream); txtBox.Text = streamreader.ReadToEnd();
|