Главная » C#, Компоненты » Расширение контекстного меню формы

0

В разд. 6.5 с помощью свойства Verbs класса ComponentDesigner мы расширяли контекстное меню компонента. Сервис iMenuService позволяет аналогично расширить контекстное меню дизайнера, т. е. формы, на которую помещаются компоненты. Следует помнить, что сервис добавляет "глобальное" меню, поэтому перед добавлением я сначала удаляю это меню. Если оно еще не было добавлено— ничего страшного не произойдет, а если было, то это поможет избежать дублирования. В листинге 7.4 показано добавление глобального меню, при вызове которого выводится небольшое сообщение.

Листинг 7 4 Создание глоолльною меню с помощью сервиса THpr.jourv-iae

using System;

using System. Windows. Forms . Design; using System.ComponentModel; using System.ComponentModel.Design;

namespace MyControl {

class GradientLabelDesigner : ControlDesigner (

DesignerVerb dverb; MenuCommand mc;

public override void Initialize(IComponent component)

{

base.Initialize(component); // Получаем интерфейс сервиса

IMenuCommandService mcs =• (IMenuCommandService)component.Site.

GetService(typeof(IMenuCommandService));

// Добавляем меню

dverb — new DesignerVerb("Глобальное меню",

new EventHandler(OnGloball));

dverb.Visible = true; dverb.Enabled = true; dverb.Supported = true; mcs.RemoveVerb(dverb); mcs.AddVerb(dverb);

}

private void OnGloball(object sender, System.EventArgs e) (

System.Windows.Forms.MessageBox.Show("Вызвано меню Globall");

}

)

}

Литература:

Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. – СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

По теме:

  • Комментарии