Задача

Цель: использовать принципы разработки графического интерфейса пользователя в приложениях для ОС Windows в Visual Studio; использовать элементы графического интерфейса для управления работой приложения. Использовать принципы построения иерархических меню, создания диалоговых окон; использовать модель обработки событий в языке C#.

Что было?

Конкретная задача, описанная ниже.

 

 

  1. Создать типовое SDI-приложение Windows (Single Document Interface, одно-документный интерфейс) с элементами ввода и отображения полей объектов производных классов. Использовать различные элементы управления: текстовые поля, списки, независимые переключатели и радиокнопки, панели для группировки элементов управления.
  2. Все созданные объекты отображать в виде таблиц.
  3. В родительский класс добавить поля для сохранения текстового описания объекта и полного пути к его изображению. Эти поля тоже должны сериализоваться.
  4. Ввод новых данных осуществлять через дополнительную диалоговую форму. При вводе данных запрашивать подтверждение на сохранение объекта. В случае неполных или ошибочных данных сообщать об ошибке.
  5. Осуществлять поиск и загрузку изображения объекта в папку проекта.
  6. При редактировании объекта данные выбранного объекта из таблицы отображать в полях формы редактирования.
  7. Создаваемые объекты, на основе введенных данных, сохранять в одной коллекции.
  8. Для просмотра выбранного из таблицы объекта использовать форму для редактирования объекта. При просмотре данные для изменения недоступны.
  9. Удалять выбранный объект из таблицы и коллекции с подтверждением.
  10. Добавить на форму меню с пунктами:
  • Добавить объект,
  • Просмотреть объект,
  • Удалить объект,
  • Редактировать объект,
  • Сериализовать все объекты,
  • Десериализовать все объекты,
  • Выход,
  • Справка.
  1. Дублировать основные операции панелью инструментов ToolStrip.

 

Формы:

В форме Form1 представлены следующие элементы группы управления:

  • Кнопки (Button): «Добавить», «Удалить», «Редактировать», «Просмотреть», «Справка» «Выход»;
  • Панель инструментов (toolStrip) дублирующие функции кнопок и выпадающее меню (menuStrip) для сохранения и загрузки данных из файла;
  • Компонент в виде таблицы с колонками (listView1), куда в дальнейшем будет заноситься информация об объектах.

Ниже представлены примеры кода.

Примеры классов:

При выборе одной из кнопок те или иные поля становятся недоступны:

Результат работы

Все созданные объекты отображаются  в форме Form1 в виде таблицы с общими полями класса-родителя Ship и сохраняются в одной коллекции.

Ввод новых данных осуществляется через дополнительную диалоговую форму AddEdit, редактирование данных – через форму AddEdit. При вводе данных информация проходит верификацию. В случае внесения неполных или ошибочных данных выводится сообщение об ошибке. 

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

При сохранении изменений, выбора объекта запрашивается подтверждение действия через дополнительное диалоговое окно.

 

Процесс и использованные технологии

Для создания программы использовался: Visual Studio.