Главная » C#, Компоненты » Контекстная подсказка компонента

0

Конечно, не все программисты, использующие ваш компонент, смогут догадаться о назначении его свойств и методов. Было бы хорошо добавить возможность запуска подсказки по нажатию клавиши <П>. Для этих целей используется сервис iHelpService:

О метод void AddContextAttribute(string name, string value, HelpKeywordType

keywordType) добавляет ключевое слово контекстной подсказки;

?          метод void RemoveContextAttribute(string name, string value) удаляет ключевое слово контекстной подсказки;

?          метод void ciearContextAttributes о удаляет все добавленные ключевые слова контекстной подсказки:

?          МеТОД void ShowHelpFromKeyword (string helpKeywocd) отображает контек- стпую подсказку для указанного ключевого слова:

?          метод void ShowHelpFromUrl (string helpUrl) отображает КОПТеКСТНую подсказку, расположенную по указанному адресу.

Тип контекстной подсказки HelpKeywordType может принимать несколько значений, но нас пока интересует только одно— добавление ключевого слова для подсказки, запускаемой по клавише <F1>. Это значение равно

HelpKeywordType.FlKeyword.

В листинге 7.16 показан небольшой пример использования этого сервиса. Компонент HeipserviceControi позволяет выполнить три команды: добавить ключевое слово, удалить ключевое слово и показать подсказку. В данном случае в качестве ключевого слова я использую имя сервиса, соответственно, при нажатии на клавишу <Fi> откроется справка MSND, рассказывающая про используемый нами сервис. Ну, конечно, если справка доступна и ключе-; вое слово добавлено.                                                                                                                                                    1

Листинг 7 16. Управлении контекстной модск.икои

using System;

using System. ComponentModel;

using System. ComponentMode 1. Design;

using System.Drawing;

using System. Windows , Forms;

using System.Windows. Forms . Design;

namespace HelpServiceSample i

[Designer(typeof(HelpDesigner))]

public class HelpServiceControl : UserControl

}

public HelpServiceControl() t

this.Size = new Size(320, 100); this.BackColor = Color,White;

}

}

// Дизайнер для управления подсказкой public class HelpDesigner : ControlDesigner t

public HelpDesigner()

{

f

// Добавляем два меню в контекстное меню компонента public override DesignerVerbCollection Verbs

}

get {

return new DesignerVerbCollection(new DesignerVerb[] {

new DesignerVerb("Добавить слово IHelpService",

new EventHandler(this.AddKeyword)), new DesignerVerb("Удалить слово IHelpService",

new EventHandler(this.RemoveKeyword}), new DesignerVerb{"Показать подсказку",

new EventHandler(this.ShowKeyword))

») ;

// Добавить ключевое слово

private void AddKeyword{object sender, EventArgs e) {

// Получаем интерфейс сервиса IHelpService IHelpService hs =

(IHelpService)this,Control.Site.GetService(

typeof(IHelpService));

// Добавляем ключевое слово

hs.AddContextAttribute("keyword", "IHelpService",

HelpKeywordType,FlKeyword);

}

// Удалить ключевое слово

private void RemoveKeyword(object sender, EventArgs e) t

// Получаем интерфейс сервиса IHelpService IHelpService hs —

(IHelpService)this.Control.Site.GetService(

typeof(IHelpService));

// Удаляем ключевое слово

hs.RemoveContextAttribute("keyword", "IHelpService");

}

// Показать подсказку к слову IHelpService

private void ShowKeyword(object sender, EventArgs e) {

// Получаем интерфейс сервиса IHelpService IHelpService hs =

(IHelpService)this.Control.Site.GetService(

typeof(IHelpService));

// Показать подсказку

hs. ShowHelpFroinKeyword ("IHelpService") ;

}

}

}

Литература:

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

По теме:

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