我已经为自定义基础Winforms下载了一个dll作为我的基本表单,自定义表单的开发人员不再可用,并且我的所有表单都继承在此基本表单上,因为它具有我所有其他表单共有的一些功能,我的问题是,当我按ESC键退出或立即关闭活动表格而没有警告时,我想要覆盖ESC键的keydown事件,但它不起作用。我在下面尝试了这个代码,但是它们不能正常工作,当我按下ESC时,表单关闭,因为关闭表单的ESC事件嵌入在自定义基本表单中。
Private Sub frmMain_KeyPress(sender As Object, e As KeyPressEventArgs)
If e.KeyChar = Chr(27) Then
e.Handled = True
End If
End Sub
Private Sub frmMain_KeyDown(sender As Object, e As KeyEventArgs)
If e.KeyCode = Keys.Escape Then
e.Handled = True
End If
End Sub
答案 0 :(得分:0)
答案 1 :(得分:0)
您的基本表单似乎将属性KeyPreview设置为True。您需要将其设置为false,可能最好的位置将在构造函数的末尾。
'frmMain.vb
Public Sub New()
InitializeComponent()
MyBase.KeyPreview = False
End Sub
有关KeyPreview属性here
的更多信息