【问题标题】:Error Dialog Displayed When F1 Pressed In Combobox在组合框中按 F1 时显示错误对话框
【发布时间】:2013-08-02 00:35:52
【问题描述】:

我在样式属性设置为“0 - 下拉组合”的用户控件上有一个组合框 (cboURL)。当组合框获得焦点并按下 F1 时,会显示一个包含错误文本“此程序无法显示网页”的对话框窗口。

所需的行为是将 F1 按键发送到 UserControl_KeyDown 以便可以抑制 F1(就像对 UserControl 上的所有其他控件一样):

Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF1 Then KeyCode = 0
End Sub

UserControl 的 KeyPreview 属性设置为 True。

在 cboURL 中按下 F1 时,不会调用任何事件处理程序 cboURL_KeyDown()、cboURL_KeyUp()、cboURL_KeyPress()、UserControl_KeyDown()、UserControl_KeyUp() 或 UserControl_KeyPress()。也不会在嵌入用户控件的表单中调用 Form_KeyDown()、Form_KeyPress() 或 Form_KeyUp() 事件处理程序。

如果 cboURL 的 Style 属性设置为“2 - 下拉列表”,那么当按下 F1 时,UserControl_KeyDown 调用。但是,我不能使用该设置,因为我需要能够输入不在下拉选项列表中的文本。

确实存在此应用程序的 .chm 帮助文件(由 hhc.exe 生成),但它不是独立的帮助文件。例如,从 Windows Exporer 中双击它会给出与上述相同的错误对话框。帮助文件包含使用控件的 WhatsThisHelpID 属性访问的弹出帮助文本。

谁能建议解决此问题的方法或解决方法?

【问题讨论】:

  • 听起来它正在尝试为您的程序加载帮助文件,该文件显然不存在。 F1 是加载帮助文件的默认键。您是否尝试过检查表单的 KeyDown/KeyPress 事件以查看它是否被触发?
  • 尝试在包含表单上设置KeyPreview = TrueKeyDown 事件处理程序会在那里。在这里工作。
  • 阿尔菲,谢谢您的回复。针对您的问题,我添加了更多信息。
  • wqw - 谢谢。这已经解决(或解决了!)问题。

标签: vb6 dialog


【解决方案1】:

参考。来自 wqw 的评论: “尝试在包含的表单上设置 KeyPreview = True,KeyDown 事件处理程序会去那里。在这里工作。”

这很好用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    相关资源
    最近更新 更多