当我从Windows窗体应用程序打开帮助文件时,我正在使用此代码。
public static void ShowHelp(string constant)
{
Help.ShowHelp(dummyFormForHelp.Value, CHMFile, HelpNavigator.Topic, constant);
}
字符串
它工作正常,除了当我点击去>网址.或打印按钮在帮助文件。[
我没有收到任何消息,应用程序和chm文件根本没有响应。我需要去任务管理器并杀死进程。我不知道这是什么。
我试图打开相同的文件使用相同的代码从简单的Windows窗体应用程序只有一个窗体和一切都是完美的。所以我认为我的应用程序有问题。
什么会导致这样的问题?这是一个有很多屏幕的大型企业应用程序。
3条答案
按热度按时间l2osamch1#
打开CHM的代码片段似乎不干净(?
dummyFormForHelp.Value
,constant
)。Help.ShowHelp()
就像是一个 Package 器, Package 了好的旧HTMLHelp API调用(另见:HTMLHelp API - VBA, VB6 und VB2003)。参数有点顽固。另一个想法-请阅读HTMLHelp API - HH_CLOSE ALL注解并交叉检查您的代码。由于HH API中存在错误,请确保在主窗体的Query_Unload事件中调用此事件,而不是OnClose。
请使用如下所示的正确参数调用
Help.ShowHelp()
函数。字符串
x1c 0d1x的数据
从我的示例应用程序截图上面所有的以下代码是为我工作。请尝试为您的需求。打开URL是特殊的,在这里,而不是在您的截图(URL...)显示的一个。
型
编辑:
下载并运行MJ的诊断工具。
MJ's Diagnostics是一个小工具,报告所有HTML帮助运行时和车间(编译器)DLL是否安装并注册到正确的位置。如果您有编译器崩溃,并且在打开CHM时崩溃,或者在CHM搜索选项卡中搜索时崩溃,那么这个工具将帮助解决rouge DLL问题。
6l7fqoea2#
首先问题描述得不太清楚:
dummyFormForHelp.Value
在这里什么也没说,它只是表单的惰性初始化示例,以防止帮助窗口位于最顶端,并允许在应用程序和帮助之间切换dummyFormForHelp.Value
表示:字符串
返回WinForms <> CHM帮助的原始问题:
研究表明,冻结应用程序和打开chm的问题并不是唯一的:
解决问题的方法:
hh被添加到windows路径中,这样的命令可以很容易地执行:
型
解决方法的缺点:每次从应用程序调用帮助都将打开新的帮助示例。
对于未来的读者:
hh
调用现在帮助按预期工作。
htzpubme3#
这是Windows 10的一个错误,已在Windows 10 v1607/build 14393中修复。
它至少在Windows 10,v1507/build 10240和v1511/build 10586中存在。(我为这个主题创建了一个Connect issue,但不幸的是,该网站无法访问了。)