Ноу Інти, лекція, створення многооконного додатки

Мета роботи. Вивчити основні способи розробки багатовіконний додатків. Отримати практичні навички у створенні багатовіконний додатків.

Створення дочірньої форми

Основа інтерфейсу (MDI) додатки - MDI батьківська форма. Це - форма, яка містить MDI дочірні вікна. Дочірні вікна є "підвікні", з якими користувач взаємодіє в MDI додатку. Створення MDI батьківської форми описано в "Створення головного меню програми".

Для визначення головного вікна (Form1), як батьківської форми у вікні Властивостей. встановіть IsMDIContainer властивість - true. Це визначає форму як MDI контейнер для дочірніх форм. Для того щоб батьківське вікно займало весь екран необхідно властивості WindowsState встановити значення Maximized.

Створіть ще одне вікно, яке буде дочірнім (FormEmployee). Для цього виберіть пункт меню Project / Add Windows Form.

Це вікно має викликатися з пункту головного меню "Співробітник". Вставте код, подібний наступного, щоб створити нову MDI дочірню форму, коли користувач клацає на пункті меню. наприклад "Співробітник" - ім'я об'єкта - employeeToolStripMenuItem (В прикладі нижче, покажчик події звертається до події Click для employeeToolStripMenuItem_Click).

Даний обробник призведе до висновку на екран дочірнього вікна.

Створення меню в дочірньої формі

Додайте в дочірнє вікно пункт меню "Дія" (actionToolStripMenuItem) з підпунктами "Скасувати" (undoToolStripMenuItem), "Створити" (createToolStripMenuItem), "Редагувати" (editToolStripMenuItem), "Зберегти" (saveToolStripMenuItem) і "Видалити" (removeToolStripMenuItem). Перед пунктом видалити вставте роздільник (Separator - name = toolStripSeparator1).

Додайте в дочірнє вікно ще один пункт меню "Звіт" (reportToolStripMenuItem) c підпунктами "За співробітнику" (reportToolStripMenuItem1), "По всім співробітникам" (reportToolStripMenuItem2). Дочірнє вікно матиме вигляд, представлений на малюнку 3.1

Ноу Інти, лекція, створення многооконного додатки


Мал. 3.1. Дочірнє вікно з меню

У головному меню батьківської форми (Form1) є пункти "Об'єкт", "Довідник" і "Довідка". У дочірній формі (FormEmployee) сформовані пункти меню "Дія" та "Звіт". При завантаженні дочірньої форми меню батьківської і дочірніх форм повинні були об'єднані і складати наступну послідовність: "Об'єкт", "Дія", "Звіт", "Довідник" і "Довідка". Об'єднання пунктів меню проводиться за допомогою завдання значень властивостей MergeAction і MergeIndex для об'єктів ToolStripMenuItem.

Перевірте, щоб в меню головного вікна для об'єкта objectToolStripMenuItem властивість MergeAction було встановлено Append. а MergeIndex дорівнювало 0, а для об'єктів dictionaryToolStripMenuItem і helpToolStripMenuItem - відповідно 1 і 2. З урахуванням цього, у вікні "Співробітник" для об'єктів actionToolStripMenuItem (Дія) і "Звіт" (reportToolStripMenuItem) властивості MergeAction необхідно задати значення Insert. а властивості MergeIndex задаємо порядковий номер який визначає позицію даного пункту меню оновленому головному меню. тобто 1 (після об'єкту objectToolStripMenuItem).

Після компіляції програми, запуску її на виконання та виклику пункту меню "Співробітник" екран повинен мати вигляд, представлений на малюнку 3.2.

Ноу Інти, лекція, створення многооконного додатки


Мал. 3.2. Дочірнє вікно з підключеним меню

Створення обробників для меню дочірньої форми

Створені пункти меню для дочірнього вікна повинні ініціювати виконання відповідних функцій (Скасувати, Створити, Редагувати, Зберегти і Видалити) додатки щодо об'єктів конкретного дочірнього вікна. Для дочірнього вікна "Дані по співробітнику" ці функції повинні виконувати відповідно скасування редагування даних по співробітнику (функція "Скасувати"), створювати нові дані по співробітнику (функція "Створити"), редагувати дані по співробітнику (функція "Редагувати"), зберігати створені знову або відредаговані функція по співробітнику (функція "Зберегти") і видаляти дані по співробітнику (функція "Видалити").

Описану функціональність доцільно реалізувати в програмі у вигляді методів класу створеного FormEmployee. У додатку необхідно створити такі методи:

  • Undo - скасувати;
  • New - створити;
  • Edit - редагувати;
  • Save - зберегти;
  • Remove - видалити.

На початкових етапах проектування, як правило, неясна реалізація кожного методу, тому доцільно їх виконувати у вигляді методів-заглушок, які тільки повідомляють користувачеві про своє виклику, а в подальшому необхідно написати реальний код.

Для створення методу Undo в коді файлу FormEmployee.cs додайте наступний метод:

Далі створюємо обробник події виклику пункту меню "Скасувати". Для цього в дизайнера форми класу FormEmployee робимо подвійне клацання на пункті меню "Скасувати". Інструментальне середовище VS згенерує наступний код:

У код обробника undoToolStripMenuItem_Click додамо виклик методу Undo:

Відкомпілюємо додаток і протестуємо виклик методу Undo. В результаті вибору пункту меню "Скасувати" має бути виведено діалогове вікно з повідомленням, наведеними на малюнку 3.3.

Ноу Інти, лекція, створення многооконного додатки


Мал. 3.3. Дочірнє вікно з підключеним меню

Аналогічним чином створіть методи-заглушки для функцій "Створити", "Редагувати", "Зберегти" і "Видалити".

Завдання на лабораторну роботу

  1. Вивчити теоретичний матеріал.
  2. Створити дочірнє вікно.
  3. У дочірнє вікно додати пункти меню.
  4. Написати обробник для виклику з головного меню дочірнього вікна.
  5. Створити коди методів-заглушок для функцій програми.
  6. Створити обробники для виклику пунктів меню.
  7. Протестувати роботу програми.

Схожі статті