如何覆盖vb.net中自定义基础Winforms中的按键事件

时间:2017-04-23 15:25:15

标签: vb.net

我已经为自定义基础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

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您的基本表单似乎将属性KeyPreview设置为True。您需要将其设置为false,可能最好的位置将在构造函数的末尾。

'frmMain.vb
Public Sub New()
    InitializeComponent()     
    MyBase.KeyPreview = False
End Sub

有关KeyPreview属性here

的更多信息