Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум C#.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.79 Mб
Скачать

Сохранение файла при закрытии формы

Всякий раз, когда мы закрываем документ 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. Создать учебные приложения Программа1 – Программа 4 и разобрать принцип их работы. Поместить примеры работы программ и их коды с комментариями в отчет.

  2. Создать текстовый редактор NotepadC#. Добавив недостающие пункты меню и функции.

  3. На основании лаб. работы 3 создать MDI-приложение. Информация в окне должна отображаться в виде таблицы. Иметь возможность делать выборку данных по различным критериям. Переносить данные из одной формы в другую.

  4. Добавить формы для ввода дополнительной информации об объекте и фото объекта.

  5. Добавить пункты меню для сохранения объектов в файл и загрузки. При сохранении использовать стандартные диалоговые окна и механизм сериализации. В класс добавить поле дата создания объекта. Это поле не сериализовать, а при десериализации заново устанавливать по системной дате.

Вопросы к защите лабораторной работы.

  1. Как создать и вызвать стандартные диалоговые окна: подтверждение действия, сохранение в файл, загрузка из файла?

Задания к лабораторной работе

Контрольные вопросы

  1. Механизмы наследования

  2. Вложенные классы

  3. Использование абстрактных методов и классов

  4. Применение виртуальных методов

ЛАБОРАТОРНАЯ РАБОТА 9

РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ КОЛЛЕКЦИЙ

Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.

Основные сведения

Задания к лабораторной работе

Контрольные вопросы

  1. Механизмы наследования

  2. Вложенные классы

  3. Использование абстрактных методов и классов

  4. Применение виртуальных методов

ЛАБОРАТОРНАЯ РАБОТА 10

СЕРИАЛИЗАЦИЯ ОБЪЕКТОВ

Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.

Основные сведения

Задания к лабораторной работе

Контрольные вопросы

  1. Механизмы наследования

  2. Вложенные классы

  3. Использование абстрактных методов и классов

  4. Применение виртуальных методов

ЛАБОРАТОРНАЯ РАБОТА 12

СОЗДАНИЕ И ВЫВОД ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ НА ФОРМУ. АНИМАЦИЯ

Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.

Основные сведения

, ColorDialog, PrintDialog

Задания к лабораторной работе

Цель работы: Освоить принципы создания приложения с интерфейсом MDI. Получить навыки работы с меню, панелью инструментов, строкой статуса.

Постановка задачи:

Создать графический редактор с интерфейсом MDI. В открытом окне документа в точке, где пользователь щелкнул левой клавишей мыши, должна появляться графическая фигура, заданная в индивидуальном задании. В приложении предусмотреть диалоги: выбора толщины линий фигуры, выбора цвета фона и цвета линий фигуры, диалог отображения сведений о программе. Отображение окон диалогов реализовать через меню и панель инструментов. В приложение добавить чтение и запись сформированного пользователем изображения в файл. В заголовке главного окна выводить название файла активного документа, а в строке статуса координату мыши относительно окна активного документа. Предусмотреть одновременную работу с открытыми окнами в упорядоченном виде (каскадное, горизонтальное, вертикальное упорядочивание). Организовать печать и предварительный просмотр изображений из текущего окна.

Задания:

Контрольные вопросы

  1. Механизмы наследования

  2. Вложенные классы

  3. Использование абстрактных методов и классов

ЛАБОРАТОРНАЯ РАБОТА 13

СОЗДАНИЕ МНОГОПОТОЧНЫХ ПРИЛОЖЕНИЙ

Цель работы: формирование умений в разработке программ с использованием абстрактных классов, виртуальных методов и наследования.

Основные сведения

Задания к лабораторной работе

Контрольные вопросы

  1. Механизмы наследования

  2. Вложенные классы

  3. Использование абстрактных методов и классов