0

我在样式属性设置为“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 - Dropdown List',则当按下 F1 时调用UserControl_KeyDown。但是,我不能使用该设置,因为我需要能够输入不在下拉选项列表中的文本。

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

任何人都可以建议解决此问题的方法或解决方法吗?

4

1 回答 1

0

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

这工作得很好。

于 2013-08-01T16:35:52.453 回答