открыть файл .chm из my.resources при нажатии кнопок

У меня уже есть этот код из другого вопроса на этом сайте.

Help.ShowHelp(ParentForm, 
("C:\Users\Beaudean\Desktop\Help.chm"),HelpNavigator.TableOfContents, Nothing)

Это работает нормально, за исключением того, что мне нужно, чтобы расположение файла справки chm указывало на «my.resources», где он существует, потому что мне нужно установить мою программу, но в этом примере кода он работает только со строками?

Спасибо вам :)


person happycamper1221    schedule 09.06.2012    source источник
comment
Вы хотите развернуть chm с вашим приложением. Если это так, вы хотите развернуть его как отдельный файл. или вы хотите указать своей кнопкой на файл, который может существовать или не существовать где-то?   -  person Tony Hopkinson    schedule 09.06.2012
comment
я не знаю, поймете ли вы это, но код ответа ниже хорош и объясняет вещи, но это не работает, он может пойти спать, так что не могли бы вы помочь мне, Тони?   -  person happycamper1221    schedule 09.06.2012


Ответы (1)


Вы не можете заставить эту работу работать. Средство просмотра файлов справки .chm представляет собой внешнюю программу hh.exe. Он ничего не знает об управляемых ресурсах, ему нужен файл .chm на диске.

Настройте проект так, чтобы файл .chm был доступен в каталоге сборки. Project + Add Existing Item и выберите файл .chm. Выберите добавленный файл и задайте для его свойства Build значение Content (чтобы он был установлен вместе с остальными файлами), а для параметра Copy to Output Directory — значение «Копировать, если новее» (чтобы он был скопирован в каталог сборки).

И измените свой код, чтобы он всегда мог найти этот файл:

    Dim path = System.IO.Path.Combine(Application.StartupPath, "Help.chm")
    Help.ShowHelp(ParentForm, path, HelpNavigator.TableOfContents)
person Hans Passant    schedule 09.06.2012
comment
Я сделал все, что вы сказали, но когда я нажимаю кнопку, чтобы открыть файл справки chm, ничего не загружается? - person happycamper1221; 09.06.2012
comment
Я даже попробовал это в другом пустом проекте, чтобы убедиться, что это то, что я сделал, и ничего не происходит, кроме того, что курсор меняется на курсор загрузки на пару секунд ??? пожалуйста помоги - person happycamper1221; 09.06.2012
comment
Это произойдет, когда средство просмотра справки не сможет найти файл, и не будет создано никаких исключений, чтобы сообщить вам об этом. По крайней мере, убедитесь, что вы видите файл Help.chm в каталоге bin\Debug вашего проекта. - person Hans Passant; 09.06.2012
comment
что, если это как-то связано с последней строкой Help.ShowHelp... есть ли другой код, который я могу использовать, чтобы открыть файл справки из пути запуска? - person happycamper1221; 09.06.2012
comment
Большое спасибо за вашу помощь. я заработал, это была ошибка в вашем коде, это была верхняя строка, которую я заменил на этот [ Dim path = Application.StartupPath ], надеюсь, это поможет вам. еще раз спасибо :) - person happycamper1221; 09.06.2012