ADN Open CIS
Сообщество программистов Autodesk в СНГ

22/11/2014

Связывание клавиши помощи F1 с кнопкой на Ленте

Вопрос:

Я хотел бы, чтобы показывался мой chm-файл при нажатии клавиши F1 когда в подсказке кнопки на ленте появляется сообщение "Нажмите F1 для получения дополнительной справки.". Можно посмотреть пример как это сделать?

Ответ:

Свойства "HelpSource" и "HelpTopic" класса RibbonItem должны быть установлены для того, чтобы  AutoCAD показал ваш chm-файл. "HelpSource" - это Uri к chm-файлу, а "HelpTopic" – это идентификатор темы (topic id) страницы в chm-файле.

Ниже кусок кода. Вы должны изменить строки "HelpSource" и "HelpTopic" для указания chm-файла у вас в системе и идентификатора темы в нём. Так же не забудьте подключить "AdWindows.dll" к своему проекту.

Код - C#: [Выделить]
  1. // Из AdWindows.dll
  2. using Autodesk.Windows;
  3. public class MyCommands
  4. {
  5.     [CommandMethod("CRB")]
  6.     public void createRibbonButton()
  7.     {
  8.         Autodesk.Windows.RibbonControl ribCntrl =
  9.         Autodesk.AutoCAD.Ribbon.RibbonServices.RibbonPaletteSet.RibbonControl;
  10.         // Добавляем вкладку
  11.         RibbonTab ribTab = new RibbonTab();
  12.         ribTab.Title = "My custom tab";
  13.         ribTab.Id = "MY_TAB_ID";
  14.         ribCntrl.Tabs.Add(ribTab);
  15.         // Создаем источник для панели
  16.         Autodesk.Windows.RibbonPanelSource ribSourcePanel
  17.                                     = new RibbonPanelSource();
  18.         ribSourcePanel.Title = "Controls";
  19.         // Теперь создаем панель
  20.         RibbonPanel ribPanel = new RibbonPanel();
  21.         ribPanel.Source = ribSourcePanel;
  22.         ribTab.Panels.Add(ribPanel);
  23.         Autodesk.Windows.RibbonToolTip ribToolTip
  24.                                         = new RibbonToolTip();
  25.         ribToolTip.Command = "Моя_команда";
  26.         ribToolTip.Title = "Мой Заголовок ";
  27.         ribToolTip.Content = "Мой Контент ";
  28.         ribToolTip.ExpandedContent = "Мой Расширенный Контент !";
  29.  
  30.         // Без этого сообщение " Нажмите F1 для получения дополнительной справки."
  31.         // does not appear in the tooltip
  32.         ribToolTip.IsHelpEnabled = true;
  33.         Autodesk.Windows.RibbonButton ribButton
  34.                                         = new RibbonButton();
  35.         ribButton.Text = "Полилиния";
  36.         ribButton.ShowText = true;
  37.         ribButton.CommandParameter = "\x1b\x1b_PLINE ";
  38.         ribButton.CommandHandler = new AdskCommandHandler();
  39.         ribButton.HelpSource
  40.             = new System.Uri(
  41.                                 @"C:\Temp\ToolTipDemo.chm",
  42.                                 UriKind.RelativeOrAbsolute
  43.                             );
  44.         ribButton.HelpTopic = "CreateLayer";
  45.         ribButton.IsToolTipEnabled = true;
  46.         ribButton.ToolTip = ribToolTip;
  47.         ribSourcePanel.Items.Add(ribButton);
  48.         ribTab.IsActive = true;
  49.     }
  50. }
  51. public class AdskCommandHandler : System.Windows.Input.ICommand
  52. {
  53.     public bool CanExecute(object parameter)
  54.     {
  55.         return true;
  56.     }
  57.     public event EventHandler CanExecuteChanged;
  58.     public void Execute(object parameter)
  59.     {
  60.         RibbonButton ribBtn = parameter as RibbonButton;
  61.         if (ribBtn != null)
  62.         {
  63.             Application.DocumentManager.MdiActiveDocument.SendStringToExecute
  64.                 (
  65.                     (String)ribBtn.CommandParameter, true, false, true
  66.                 );
  67.         }
  68.     }
  69. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/09/associating-f1-help-with-ribbon-button.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=1100

Опубликовано 22.11.2014