Привязываем справку к приложению Windows
Теперь нужно сделать, чтобы справка нормально работала из нашего игрушечного проекта, для которого она и предназначена. Подобно всем солидным приложениям Windows создадим в проекте меню Help с двумя пунктами: Содержание и Index. Кроме того предусмотрим контекстно-зависимую справку, а именно, когда в фокусе находится кнопка (а она, по правде говоря, у нас всегда будет в фокусе), то при нажатии на F1 должна появляться справка про действие именно этой кнопки (пусть это будет Звук.htm).
Для удобства адресации переместите файл Справка.chm в папку BIN проекта.
Чтобы справка работала из приложения, ее нужно к приложению привязать. Поместим в проект элемент управления HelpProvider. В окне его свойств зададим в качестве свойства HelpNamespace файл Справка.chm. Привязка закончена.
Теперь настроим контекстно-зависимую справку. Зайдем в окно свойств нашей кнопки. Там появились три новых свойства, имеющие отношение к справке, два из которых нас интересуют. Установите свойству HelpKeyword on HelpProvider1 значение Звук.htm, а свойству HelpNavigator on HelpProvider1 – значение Topic.
Запустите проект. Нажмите F1. Поскольку кнопка в фокусе, вы увидите окно справки с открытым документом Звук.htm, что и требовалось.
Если бы у вас на форме было несколько элементов управления, то вы для каждого могли бы установить упомянутые два свойства и тогда при нажатии на F1 вы бы видели справку, касающуюся именно того элемента управления, который находится в фокусе.
Чтобы на экране справка показывалась без нажатия на F1, а при выполнении оператора, вам нужно использовать методы класса Help. Чтобы справка появлялась с содержанием, вам нужно использовать метод ShowHelp, а чтобы с алфавитным указателем – метод ShowHelpIndex. Ниже вы видите код нашего проекта:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Beep()
End Sub
Private Sub Меню_содерж_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Меню_содерж.Click
Help.ShowHelp(Me, "Справка.chm")
End Sub
Private Sub MenuIndex_Click(ByVal sender As Object, ByVal e As EventArgs) Handles MenuIndex.Click
Help.ShowHelpIndex(Me, "Справка.chm")
End Sub
Задание выполнено. Справка работает.