2013-07-29 31 views
0

我有一个用户控制其样式属性被设置为一个组合框(cboURL)“0 - 下拉组合”。当组合框具有焦点和F1被按下时,显示一个对话框窗口包含错误文本“此程序不能显示该网页”。错误对话框显示当F1按压组合框

所要求的行为是F1按键被发送到UserControl_KeyDown让F1可以抑制(因为它是在用户控件的所有其他控件):

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

的用户控件的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 被调用。但是,我无法使用该设置,因为我需要能够输入不在下拉选项列表中的文本。

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

任何人都可以提出修复或针对此问题,请解决方法?

+0

这听起来像它试图加载的帮助文件程序,这显然不存在。 F1是加载帮助文件的默认键。您是否尝试过检查你的窗体的'的KeyDown/KeyPress'事件,看看是否是被解雇? – Alfie

+1

尝试设置'的KeyPreview = TRUE;含形式,'KeyDown'事件处理程序去那里。在这里工作。 – wqw

+0

阿尔菲,感谢您的回复。为了回答您的问题,我添加了更多信息。 – solenopsis

回答

0

参考。从wqw评论: “尝试设置的KeyPreview =包含窗体上的真,KeyDown事件处理程序去那里在这里工作。”

这工作得很好。