Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный_практикум.doc
Скачиваний:
73
Добавлен:
15.11.2019
Размер:
45.35 Mб
Скачать

5. Модификация приложения Windows Forms: подготовка библиотеки классов

Проект LWP15Tools будет содержать четыре самостоятельных класса.

Для выбора, куда именно вставлять новый класс, выбираем в обозревателе решений проект LWP15Tools:

Для добавления нового файла в проект необходимо выполнить: Проект -> Добавить класс... (Shift+Alt+C). Также аналогично действие можно произвести щёлкнув на имени проекта правой кнопкой мыши, затем Добавить -> Класс...:

В окне Добавление нового элемента – LWP15Tools в поле Имя вводим DocManager.cs. Также добавим в проект добавим ссылку на библиотеку System.Windows.Forms (вкладка .NET окна Добавить ссылку). Для добавления ссылки в обозревателе решений нажмём правую кнопку мыши по пункту Ссылки в проекте LWP15Tools затем Добавить -> Добавить ссылку...:

Текст первого файла класса DocManager.cs: [искомый код можно найти в приложении к данной лабораторной работе в (описания можно того или иного приложения можно посмотреть в пунтке № 8 протокола работы), а именно необходимо открыть Приложение № 1 (Библиотека классов LWP15Tools)].

Небольшое замечание. Ранее они уже были даны в предыдущих лабораторных работах, но приводим напоминание...

Обратим внимание на следующий код:

#region Класс DocManagerData

...

#endregion

Этот код формирует из участков кода файла блоки, которые можно закрыть нажав на «минус» слева от строчи #region и развернуть нажав «плюс» слева от свёрнутого элемента. Выглядит это так:

Также обратим внимание вот на этот код:

/// <summary>

/// Открываем документ

/// </summary>

/// <param name="newFileName">

/// Имя файла документа. Empty - функция выводит OpenFileDialog

/// </param>

/// <returns></returns>

Это описание, в данном случае для функции. Отображается во время использования функции в любом месте, при наведении мыши на экземпляр самой функции. Например, подсвечиваем функцию из этого класса:

О самом классе. Класс выполняет достаточно много функций связанных с сопровождением файлов приложения (создание нового документа, сохранение и открытие), а также работает с системным реестром (ассоциирует тип файла программы с нашим приложением). Забегая вперёд, можно сказать что для поддержки работы с реестром необходимо Запустить приложение один раз от имени администратора для Windows Vista и Windows 7 (если включён UAC и параметрами для него выставлены по умолчанию). В этом случае всех ключи в реестре будут созданы, и дальнейшая работа приложения с ними будет обеспечена. Основной функцией класса является следующая функция:

/// <summary>

/// Инициализация

/// </summary>

/// <param name="data"></param>

public DocManager(DocManagerData data)

{

Функция инициализирует класс и принимает данные (data) для работы класса. Это данные связанные с типом файлов для приложения, в частности основная инициализация для главной формы LWP15Main выглядит так:

private DocManager docManager;

...

// DocManager

DocManagerData data = new DocManagerData();

data.FormOwner = this;

data.UpdateTitle = true;

data.FileDialogFilter = "Файлы LWP15Draw (*.lwp)|*.lwp|Все файлы (*.*)|*.*";

data.NewDocName = "New.lwp";

data.RegistryPath = registryPath;

docManager = new DocManager(data);

docManager.RegisterFileType("lwp", "lwpfile", "Файл LWP15Draw");

...

Переходим к следующему классу. Назовём файл для него PersistWindowState.cs. Для работы кода добавим новую ссылку System.Drawing. Код файла такой: [искомый код можно найти в приложении к данной лабораторной работе в (описания можно того или иного приложения можно посмотреть в пунтке № 8 протокола работы), а именно необходимо открыть Приложение № 1 (Библиотека классов LWP15Tools)].

Класс отвечает за работу с окном приложения (сохраняет в реестр размер и положение окна, а также состояние минимизации окна, если приложение было свёрнуто).

Следующий файл класса будет носить имя MruManager.cs (класс MruManager). Класс будет обеспечивать работу со список недавно использованных (последних) файлов. По умолчанию будет отображаться 10 наиболее часто используемых файлов. Число символов в пути и имени не будет превышать 40. Работа списка будет выглядеть примерно так:

Код файла класса следующий: [искомый код можно найти в приложении к данной лабораторной работе в (описания можно того или иного приложения можно посмотреть в пунтке № 8 протокола работы), а именно необходимо открыть Приложение № 1 (Библиотека классов LWP15Tools)].

Последний класс отвечает за открытие файла приложение перетаскиванием из проводника Windows. Имя файла класса: DragDropManager.cs. Код файла следующий: [искомый код можно найти в приложении к данной лабораторной работе в (описания можно того или иного приложения можно посмотреть в пунтке № 8 протокола работы), а именно необходимо открыть Приложение № 1 (Библиотека классов LWP15Tools)].

Таким образом, был сформирован файл библиотеки LWP15Tools.dll для приложения (можно откомпилировать). Можно переходить к самому приложению.