* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Активация и деактивация команд меню
7 февраля 2009

У каждого элемента меню есть свойство Enabled. Установив его в false, вы деакти-
вируете элемент меню, запрещая ему реагировать на действия пользователя, в том
числе на клавиши доступа и быстрые клавиши. Деактивированные элементы меню
выделены бледно-серым цветом. Следующий пример показывает, как деактивиро-
вать элемент меню во время выполнения.
Visual Basic .NET
Menulteml.Enabled = False
Visual C#
menu Item "(.Enabled = false;
Отображение элементов меню с флажками
Свойство Checked можно снабдить элемент меню флажком, который отображается
справа от имени элемента. Флажки позволяют пометить выбранные параметры.
Следующий пример демонстрирует, как пометить элемент меню флажком и снять
флажок:
Visual Basic .NET
Пометить элемент меню флажком
Menulteml.Checked = True
' Снять флажок у элемента меню
Menulteml.Checked = False
Visual C#
// Пометить элемент меню флажком
Menulteml.Checked = true;
// Снять флажок у элемента меню
Menulteml.Checked = false;
Отображение элементов меню с переключателями
Вместо флажка можно отображать переключатель. Для этого свойство RadioCheck
элемента меню следует установить в true, в результате справа от имени элемента
меню отобразится не флажок, а переключатель. Если же свойство Checked установ-
лено в false, ни фдажок, ни переключатель не отображаются. Заметьте, что пере-
ключатели часто применяют для выбора взаимоисключающих параметров, напри-
мер цвета фона. Чтобы при установке одного переключателя остальные сбрасыва-
лись, вам придется самостоятельно написать соответствующий код.
Как сделать элемент меню невидимым
Чтобы сделать элемент меню невидимым, установите его свойство Visible в false. Это
свойство позволяет изменять меню во время выполнения в зависимости от некото-
рых условий. Вот как это делается:
Visual Basic .NET
Menulteml.Visible = False
Visual C#
menulteml.Visible = false;
Заметьте, что элементы, сделанные во время выполнения невидимыми, удаля-
ются из меню, а их вложенные элементы становятся недоступными.
Клонирование меню
Во время выполнения разрешается копировать (клонировать) имеющиеся элемен-
ты меню. Например, имеет смысл клонировать элемент главного меню Edit (со все-
ми вложенными элементами) и поместить копию в контекстное меню некоторого
элемента управления. Эта задача решается с помощью метода Clone Menu. Этот ме-
тод создает копию заданного элемента меню со всеми его членами, к которым от-
носятся вложенные элементы меню, свойства и обработчики событий. В результате
получается клон, способный обрабатывать все события, который обрабатывал ори-
гинал. Созданное таким образом контекстное меню достаточно просто связать с
элементом управления. Следующий пример демонстрирует клонирование элемен-
та меню во время выполнения и создание контекстного меню на основе клона:
Visual Basic .NET
Этот пример предполагает наличие элемента меню fileMenuItem
и элемента управления myButton.
Объявить новое контекстное меню и создать его экземпляр
Dim myContextMenu as New ContextMenuf)
Клонировать fileMenuItem и занести клон з свойство myContextMenu
myContextMenu. MenuItems.Add( fileMenuItem. CloneMenuO)
Назначить контекстное меню элементу управления myButton
myButton.ContextMenu = myContextMenu
Visual C#
// Этот пример предполагает наличие элемента меню fileMenuItem
// и элемента управления myButton.
// Клонировать fileMenuItem и занести клон в свойство myContextMenu
ContextMenu myContextMenu = new ContextMenu();
// Клонируем fileMenuItern и заносим в контекстное меню элемент-клон
inyContextMenu. Menultems. Add(fileMenuItem.CloneMenuO);
// Назначить контекстное меню элементу управления mySutton
myButton.ContextMenu - myContextMenu;
Слияние меню во время выполнения
Порой во время выполнения требуется объединить содержимое нескольких меню,
Для этого применяют метод MergeMenu, который способен объединять содержимое
главного и контекстного меню, отдельные элементы меню и добавлять отдельные
элементы в существующее меню.
> Как объединить меню во время выполнения
Вызовите метод MergeMenu из объекта меню или элемента меню, к которому
нужно присоединить меню (или элемент), заданное аргументом этого метода:
Visual Basic .NET
MainMenul.MergeMenu(ContextMenul)
Visual C#
mainMenul. MergeMenu (context Menu"!);
Создание элементов меню во время выполнения
Разрешается динамически добавлять к меню новые элементы во время выполне-
ния. Например, к меню File можно добавить элементы, отображающие путь к не-
давно открывавшимся файлам. У новых элементов меню нет обработчиков собы-
тий, однако можно задать метод, обрабатывающий событие Click, передав ею кон-
структору элемента меню как аргумент. Этот метод должен быть процедурой (Sub
или, в С#, void) с сигнатурой обработчика события. Вот примеры подходящих ме-
тодов:
Visual Basic .NET
Public Sub ClickHandler {ByVal sender As Object. ByVal e As
System.EventArgs)
Реализация опущена
End Sub
Visual C#
public void ClickHandler (object sender, System.EventArgs e)
{
// Реализация опущена
> Создание элементов меню во время выполнения
1. Объявите новый элемент меню и создайте его экземпляр. При желании можно
сразу же задать метод-обработчик события Click:
Visual Basic .NET
* Этот пример предполагает наличие метода myClick
' с сигнатурой обработчика события
Dim myltem as Menultem
myltem = New Menultem("ltem 1", New EventHandler(AddressOf myClick))
Visual C#
// Зтот пример предполагает наличие метода myClick
// с сигнатурой обработчика события
Menultern myltem;
myltem = new Menu Item("Item 1", new EventHandler(myClick));
2. Добавьте новый элемент к набору элементов расширяемого меню.
Visual Basic .NET
Mai nMenul. Men ulterns. Add (myltem)
Visual C#
MainMenul.Menu!tems.Add{myltem);

Теги: .NET

Статьи по теме:

Towards Cleaner Code, A C# Asynchronous Helper
Создание составных элементов управления
Лямбда-выражения
Установка и извлечение динамических свойств вручную
Вызов методов
Обзор ADO.NET
Установка порядка передачи фокуса при нажатии клавиши Tab
Добавление элементов управления на панель Toolbox
Наследование от абстрактного класса
Использование отладочных инструментов
Создание экземпляров элементов управления ActiveX
Класс DataViewManager
Абстрактные классы и члены
Объект Graphics
Применение XML с объектами DataSet
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Активация и деактивация команд меню. Регион сайта: Москва и Санкт-Петербург