Используйте Id вместо контекста


Я использую HelpNDoc для предоставления chm-файла для контекстной справки в моем приложении.

В этой программе вы определяете идентификатор справки и соответствующий контекст справки. Например, идентификатор справки может быть "SystemSetup", а контекст справки - 57.

Теперь мой вопрос:

Я могу вызвать помощь следующим образом:

System.Windows.Forms.Help.ShowHelp(null, @"myhelp.chm", HelpNavigator.TopicId, "57");

И все работает хорошо, но могу ли я как-то вызвать ShowHelp с помощью help-ID ("SystemSetup") вместо этого?

Я задаю этот вопрос, потому что контекст справки может измениться, но идентификатор справки остается всегда одно и то же.

2 3

2 ответа:

Нет простого способа сделать это. Идентификатор темы-это лучшая вещь, которую вы должны непосредственно указать на тему. Программное обеспечение, которое мы используем для создания файлов CHM, позволяет давать имена темам, которые могут быть получены с помощью вашего кода.

Если это не работает для вас, и единственное, что у вас есть, это имя, вы можете сделать это с помощью значения Topic enum и имени HTML-файла (если он достаточно различен).

Что-то вроде этого может быть тем, что вам нужно (вы можете получить имя html-файла через CHM viewer):

System.Windows.Forms.Help.ShowHelp(null, @"myhelp.chm", HelpNavigator.Topic, "SystemSetup.html");

Я не знаю, какой вариант лучше. Это зависит от вас и вашего конкретного сценария.

HelpNDoc использует следующий шаблон для именования файлов раздела: "HELP_ID.htm", где HELP_ID - выбранный уникальный идентификатор справки для этого раздела. Таким образом, вы можете надежно открыть определенную тему, используя следующую команду:

System.Windows.Forms.Help.ShowHelp(null, @"help.chm", HelpNavigator.Topic, "HELP_ID.htm");

Кроме того, как вы узнали, HelpNDoc может генерировать исходный файл с константами. И вы можете автоматизировать его генерацию и включить его в свой процесс сборки, создав новую сборку "кода". Смотрите пошаговое руководство: Как создать новый вывод документации, который будет опубликовано