Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на 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

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

Генерация исключений
Извлечение данных с помощью объектов DataAdapter
Towards Cleaner Code II, a C# GUI Invoke/Async Helper
Защищенные члены
Операторы Imports и using
Применение класса XmlDataDocument
Реализация специальных возможностей на этапе проектирования
Принципы разработки пользовательского интерфейса
Стыковка и фиксация элементов управления
Создание проекта установочной программы
Создание экземпляров пользовательских типов
Защита приложения
Обзор ADO.NET
Извлечение типизированных данных с помощью объекта DataReader
Создание класса Demo
| .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


     



Rambler's Top100

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

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