我正在尝试制作一个程序,它可以接受基于按钮的输入以及基于键盘的输入,然后输出到文本框 . 但是,我想使用Enter键来触发函数输出到文本框 . 但是由于表单上有按钮 . 按下回车键时,它们将像鼠标单击事件一样触发 . 我需要找到一种方法来让enter键只触发我想要的事件而不是触发按钮 . 或者我需要找到一种方法,使按钮永远不会有焦点,并且焦点总是在表单本身上,同时仍然可以点击按钮 . 有帮助吗?
If e.KeyCode = Keys.Enter Then
SecondNum = Val(TB_Output.Text)
ResultEquals()
TB_Output.Text = Result
End If
2 回答
理论上,将表单的
KeyPreview
属性设置为True
应该这样做 . 然后处理KeyDown
事件,并确保在按Enter键时将e.Handled
设置为True
(或e . SuppressKeyPress,取决于您正在使用的控件的实现) .我刚刚在一个示例项目中尝试过这种方法,但由于某种原因它不能用于按钮 . 您可能需要在表单级别使用
WndProc
,这总是100%有效 .如果你想直接进入关键事件的核心,甚至拦截箭头和其他改变焦点的键,你需要这样的东西: