我已經下載了自定義基礎Winforms作爲我的基本窗體的dll,自定義窗體的開發人員不再可用,並且我的所有窗體都繼承在這個基礎表單中,因爲它具有我所有其他表單所共有的一些功能,所以我的問題是,當我按ESC鍵退出或立即關閉活動表單時沒有發出警告,我想覆蓋事件的keydown事件ESC鍵但它不起作用。我嘗試了下面的代碼,但他們不工作,當我按下ESC時,窗體關閉,因爲關閉窗體的ESC事件被嵌入到自定義的基礎窗體中。如何覆蓋vb.net中的自定義基礎Winforms中的按鍵事件
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
您可以嘗試通過[在這個答案顯示反射]從'KeyDown'活動中刪除所有事件處理程序(http://stackoverflow.com/a/91853/2882256)。 –
感謝您的回覆,我不可能刪除Keypress事件,因爲我需要它在窗體上,我只是想從基本窗體中取消ESC鍵事件,以便窗體不會退出,因爲它是基礎上的默認行爲表單 –