- •Диалоговые окна
- •Сохранение файла при закрытии формы
- •OpenFileDialog и SaveFileDialog для sdi-приложений
- •Тема 3.4. Классы. Иерархии классов
- •Тема 3.5. Интерфейсы
- •4.1. Среда программирования Microsoft Visual Studio .Net. Событийно-управляемое программирование
- •Тема 5.1. Методы конструирования сложных программных систем
- •Тема 5.2 Разработка динамических библиотек
Сохранение файла при закрытии формы
Всякий раз, когда мы закрываем документ 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 и устанавливаем следующие свойства:
TextBox, свойство |
Значение |
Name |
txtBox |
Dock |
Fill |
Multiline |
true |
Text |
Да |
Добавляем на форму элемент 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();
filestream.Close();
}
}
Добавляем обработчик для пункта меню Save:
private void mnuSave_Click(object sender, EventArgs e) {
saveFileDialog1.ShowDialog();
String^ fileName=saveFileDialog1.FileName;
FileStream filestream = File.Open(fileName, FileMode.Create, FileAccess.Write);
if(filestream != null) {
StreamWriter streamwriter = new StreamWriter(filestream);
streamwriter.Write(txtBox.Text);
streamwriter.Flush();
filestream.Close();
}
}
Задания к лабораторной работе
Создать учебные приложения Программа1 – Программа 4 и разобрать принцип их работы. Поместить примеры работы программ и их коды с комментариями в отчет.
Создать текстовый редактор NotepadC#. Добавив недостающие пункты меню и функции.
На основании лаб. работы 3 создать MDI-приложение. Информация в окне должна отображаться в виде таблицы. Иметь возможность делать выборку данных по различным критериям. Переносить данные из одной формы в другую.
Добавить формы для ввода дополнительной информации об объекте и фото объекта.
Добавить пункты меню для сохранения объектов в файл и загрузки. При сохранении использовать стандартные диалоговые окна и механизм сериализации. В класс добавить поле дата создания объекта. Это поле не сериализовать, а при десериализации заново устанавливать по системной дате.
Вопросы к защите лабораторной работы.
Как создать и вызвать стандартные диалоговые окна: подтверждение действия, сохранение в файл, загрузка из файла?
Задания к лабораторной работе
Контрольные вопросы
Механизмы наследования
Вложенные классы
Использование абстрактных методов и классов
Применение виртуальных методов
ЛАБОРАТОРНАЯ РАБОТА 9
РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ КОЛЛЕКЦИЙ
Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.
Основные сведения
Задания к лабораторной работе
Контрольные вопросы
Механизмы наследования
Вложенные классы
Использование абстрактных методов и классов
Применение виртуальных методов
ЛАБОРАТОРНАЯ РАБОТА 10
СЕРИАЛИЗАЦИЯ ОБЪЕКТОВ
Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.
Основные сведения
Задания к лабораторной работе
Контрольные вопросы
Механизмы наследования
Вложенные классы
Использование абстрактных методов и классов
Применение виртуальных методов
ЛАБОРАТОРНАЯ РАБОТА 12
СОЗДАНИЕ И ВЫВОД ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ НА ФОРМУ. АНИМАЦИЯ
Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.
Основные сведения
, ColorDialog, PrintDialog
Задания к лабораторной работе
Цель работы: Освоить принципы создания приложения с интерфейсом MDI. Получить навыки работы с меню, панелью инструментов, строкой статуса.
Постановка задачи:
Создать графический редактор с интерфейсом MDI. В открытом окне документа в точке, где пользователь щелкнул левой клавишей мыши, должна появляться графическая фигура, заданная в индивидуальном задании. В приложении предусмотреть диалоги: выбора толщины линий фигуры, выбора цвета фона и цвета линий фигуры, диалог отображения сведений о программе. Отображение окон диалогов реализовать через меню и панель инструментов. В приложение добавить чтение и запись сформированного пользователем изображения в файл. В заголовке главного окна выводить название файла активного документа, а в строке статуса координату мыши относительно окна активного документа. Предусмотреть одновременную работу с открытыми окнами в упорядоченном виде (каскадное, горизонтальное, вертикальное упорядочивание). Организовать печать и предварительный просмотр изображений из текущего окна.
Задания:
Контрольные вопросы
Механизмы наследования
Вложенные классы
Использование абстрактных методов и классов
ЛАБОРАТОРНАЯ РАБОТА 13
СОЗДАНИЕ МНОГОПОТОЧНЫХ ПРИЛОЖЕНИЙ
Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.
Основные сведения
Задания к лабораторной работе
Контрольные вопросы
Механизмы наследования
Вложенные классы
Использование абстрактных методов и классов
