【发布时间】:2011-06-05 13:46:55
【问题描述】:
我无法为我的应用程序捕获功能键 F1..F12。我能够捕获常规键和修饰符,例如 shift、ctrl、alt 等。
此question 推荐KeyPreview = True,但这似乎不适用于我的应用程序。我做错了什么?
Private Sub Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.KeyPreview = True
AddHandler Me.KeyDown, AddressOf KeyDownsHandler
AddHandler Me.KeyUp, AddressOf KeyUpHandler
End Sub
Private Sub KeyUpHandler(ByVal o As Object, ByVal e As KeyEventArgs)
e.SuppressKeyPress = True
If e.KeyCode = Keys.F1 Then
txtMain.AppendText("F1 was pressed!" & Environment.NewLine)
End If
txtMain.AppendText( _
String.Format("'{0}' '{1}' '{2}' '{3}' {4}", e.Modifiers, e.KeyValue, e.KeyData, e.KeyCode, Environment.NewLine))
End Sub
Private Sub KeyDownHandler(ByVal o As Object, ByVal e As KeyEventArgs)
e.SuppressKeyPress = True
txtMain.AppendText( _
String.Format("'{0}' '{1}' '{2}' '{3}' {4}", e.Modifiers, e.KeyValue, e.KeyData, e.KeyCode, Environment.NewLine))
End Sub
【问题讨论】:
-
用户错误 :(...我使用的是 Microsoft 键盘,它要求打开键 F Lock。
-
太棒了。哈哈,每个人都会遇到。
标签: .net vb.net winforms .net-2.0 keypress