Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Пункт 1
Следует реорганизовать меню программы. На верхнем уровне меню слева должен находится пункт «Файл», справа – «Окно». В разделе меню «Файл» должны быть команды «Новый», «Открыть», «Сохранить», «Сохранить как…». Из раздела «Окно» следует удалить команду «Новое», а её обработчик связать с пунктом меню «Файл»-«Новый». При обработке команд сохранения и открытия файлов следует создавать соответствующие стандартные диалоговые панели и использовать результаты выбора пользователя для сериализации и десериализации массива фигур. Обработчики команд «Сохранить» и «Сохранить как…» должны различаться только обработкой ранее сохранённого файла. В первом случае он должен сохраняться без создания и вывода файлового диалога. Для начальной блокировки этих пунктов меню надо установить их свойство Enabled в значение false. При создании и закрытии окон документов следует управлять состоянием этих пунктов меню, блокируя и разблокируя их в соответствии с ситуацией.
Объекты, соответствующие пунктам меню, являются полями класса родительской формы. Из методов дочернего окна можно обратиться к родительской форме через свойство ParentForm.
При инициализации файловых диалогов следует указывать в качестве стартового каталога текущий каталог программы. Это можно сделать следующим образом:
saveFileDialog.InitialDirectory = Environment.CurrentDirectory;
В поле Filter классов файловых диалогов следует задавать шаблон, соответствующий имени вашего редактора и расширению файлов рисунков, создаваемых в нём.
Чтобы обратиться в коде родительской MDI-формы к полям сохраняемой дочерней формы, можно использовать свойство this.ActiveMdiChild, содержащее ссылку на активное окно документа. Для изменения заголовка окна можно в программе изменять значение свойства формы Text.
Пункт 2
Для обработки попытки закрытия окна формы следует в дочерней MDI-форме реализовать обработчик события FormClosing. Окно запроса о сохранении документа следует выдавать только при наличии изменений в документе. То есть, оно не должно выдаваться при закрытии пустого окна или окна, отображающего документ, прочитанный из файла или записанный в файл и не содержащий изменений. Для отслеживания соответствующих состояний документа следует добавить в класс формы переменную–флаг модификации документа. Чтобы метод MessageBox.Show создавал окно с тремя кнопками, в качестве третьего аргумента ему следует передавать константу MessageBoxButtons.YesNoCancel. Метод в данном случае может возвращать константы DialogResult.Yes, DialogResult.No, DialogResult.Cancel.
Отказ от закрытия формы (выбор Cancel) должен приводить к установке в true свойства Cancel второго аргумента обработчика события FormClosing.
Дата публикования: 2015-06-12; Прочитано: 200 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!