Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_8-10.docx
Скачиваний:
5
Добавлен:
10.07.2019
Размер:
1 Мб
Скачать
☆

Властивості меню для mdi-інтерфейсу

Пункти меню мають також властивості, що дозволяють задавати їх поведінку у випадку MDI-інтерфейсу, коли є батьківські і дочірні вікна. За допомогою властивості MdiWindowListItem елемента управління MenuStrip можна задати пункт меню батьківського вікна, який буде містити список всіх дочірніх вікон. Цей список здатний містити до дев'яти вікон. Якщо таких вікон більше, то внизу меню з'являється пункт More Windows (Інші вікна), відкриває діалогове вікно, в якому міститься повний список дочірніх вікон.

Для задання поведінки пунктів меню при об'єднанні меню батьківського та дочірнього вікон використовують властивості MergerAction і Mergerlndex. Щоб уникнути однакових пунктів меню або заборонити відображати деякі при об'єднанні в разі розташування головного меню дочірнього вікна в батьківському вікні, необхідно використовувати дані властивості.

Для того щоб можна було об'єднувати меню батьківського і дочірнього вікон, необхідно властивості AllowMerge елемента управління MenuStrip присвоїти значення True.

Властивість MergerAction може приймати значення, зазначені в таблиці:

Значення властивості

Опис

Insert

Пункт меню включається в об’єднане меню

Replace

Пункт меню замінює пункт, що знаходиться в тій же позиції, що задається властивістю MergerІndex

Remove

Пункт меню не додається в набір об'єднуваних пунктів

MatchOnly

Всі пункти підменю зазначеного меню об'єднуються з пунктами підменю, що знаходиться в тій же позиції об'єднаного меню

Властивість Mergerlndex задає позицію об'єднання пунктів меню. За замовчуванням ця властивість приймає значення -1. Наприклад, якщо необхідно об'єднати меню File (Файл) дочірнього і батьківського вікон, то слід задати значення MatchOnly для властивості дочірнього вікна MergerAction.

Властивості, що визначають стан пункту меню

Властивість Visible визначає видимість на екрані пункту меню. Якщо це властивість приймає значення False, то пункт меню не видко при виконанні програми. При роботі програми, за допомогою цієї властивості, пункти меню можна динамічно ховати або показувати.

Якщо ж необхідно визначити можливість виконання команди (пункту) меню, але при цьому залишити її видимою для користувача, використовується властивість Enable. Якщо встановлено значення False для цієї властивості, то пункт меню виділяється сірим кольором і блокується для вибору. Таким чином, можна залежно від контексту об'єкта команди забороняти або дозволяти виконання команди.

Контекстне меню

Контекстне меню - це меню, пов'язане з деякою дією (зазвичай це клацання правої кнопки миші на об'єкті) і викликається в будь-якому місці програми. У початковому стані контекстне меню невидиме і візуалізується поруч з покажчиком миші після виклику. Контекстним таке меню називається тому, що воно з'являється поруч з обраним об'єктом і його склад залежить від вмісту (контексту) цього об'єкта. Після вибору команди з контекстного меню воно зникає. Проектується контекстне меню аналогічно головному за допомогою редактора меню Menu Editor (редактор меню).

Створюється контекстне меню аналогічно головному меню, але з однією відмінністю: оскільки головне меню одне на весь додаток, а контекстне меню - своє для кожного об'єкту, то нам доведеться крім усього іншого прив'язувати кожне контекстне меню до свого об'єкту. Приступимо.

Помістимо на форму кнопку і зробимо два контекстні меню: одне для форми, інше - для кнопки.

У контекстне меню для форми включимо два пункти:

  • Пофарбувати форму в синій колір

  • Пофарбувати форму в червоний колір

У контекстне меню для кнопки включимо два пункти:

  • Розширити кнопку

  • Звузити кнопку

При клацанні правою клавішею миші по поверхні форми повинне з'являтися одне меню, по кнопці – інше.

Створюємо контекстні меню. Помістимо на форму елемент управління ContextMenu. Він розташується під формою під ім'ям ContextMenu1. Це буде наше контекстне меню для форми. Аналогічно розмістимо ContextMenu2. Це буде контекстне меню для кнопки.

Клацнемо по елементу ContextMenu1. На формі з'явиться область, яку ми заповнимо пунктами про синій і червоний кольори, як це робили з Головним меню. Клацнемо по елементу ContextMenu2 і аналогічно заповнимо область про розширення і звуження.

Прив'язуємо контекстні меню. Меню готові. Тепер потрібно якось сказати комп'ютеру, що ContextMenu1 відноситься до форми, а ContextMenu2 – до кнопки. Зайдемо у вікно властивостей форми і встановимо властивості ContextMenu значення ContextMenu1. Зайдемо у вікно властивостей кнопки і встановимо властивості ContextMenu значення ContextMenu2.

Примушуємо контекстні меню працювати. Робимо це аналогічно головному меню. Подвійне клацання по пункту меню - і у вікні коду з'являється заготівка процедури, куди ми пишемо все, що нам потрібне. Ось що у вас повинно вийти:

Private Sub MenuItem1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem1.Click

Me.BackColor = Color.Blue 'Контекстне меню форми - Пофарбувати її в синій колір

End Sub

Private Sub MenuItem2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem2.Click

Me.BackColor = Color.Red 'Контекстне меню форми - Пофарбувати її в червоний колір

End Sub

Private Sub MenuItem3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem3.Click

Button1.Width = Button1.Width + 20 'Контекстне меню кнопки - Розширити її

End Sub

Private Sub MenuItem4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem4.Click

Button1.Width = Button1.Width - 20 'Контекстне меню кнопки - Свузити її

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]