Используйте Id вместо Context

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

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

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

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

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

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

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

2 ответа

Решение

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

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

Примерно так может быть то, что вам нужно (вы можете получить имя файла html через программу просмотра CHM):

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 может генерировать исходный файл с константами. И вы можете автоматизировать его генерацию и включить его в процесс сборки, создав новую сборку "Код". См. Пошаговое руководство: как создать новую документацию для публикации.

Другие вопросы по тегам