【发布时间】:2014-07-01 08:22:01
【问题描述】:
我已经在表单和表单的 keydown 上启用了 KeyPreview 选项,我正在检测 Escape keydown 以弹出一个 msgbox 请求用户是否要退出应用程序。
但问题是,我有一个文本框需要在 Escape 按键上清除其内容,而不是询问用户是否需要退出。我尝试在此控件上使用 keydown 事件,但表单 keydown 事件发生在控件 keydown 之前(我希望反过来发生)。
文本框上的代码
Private Sub txtAmount(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtAmount.KeyDown
If e.KeyCode = Keys.Escape Then
'//Escape keypress
MsgBox("TEXTBOX ESCAPE")
sender.Text = ""
End If
End Sub
主菜单表单上使用的代码
Private Sub frmMainMenu_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then Application.Exit()
End Sub
我也不能使用 previewkeydown ,因为 MaskTextBox 不会引发 previewkeydown 事件..
【问题讨论】:
标签: vb.net