我在用户控件上有一个组合框(cboURL),其Style属性设置为'0 - Dropdown Combo'。当组合框具有焦点并按下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属性访问的弹出帮助文本。
有人可以为此问题建议修复或解决方法吗?
答案 0 :(得分:0)
参考。来自wqw的评论: “尝试在包含的表单上设置KeyPreview = True,KeyDown事件处理程序就在那里。在这里工作。”
这很好。