※フォームがShowDialogで開いていないことを前提とします。
(この場合はCancelButtonプロパティの設定でエスケープキーでフォームを閉じることが可能。)
KeyDownイベントは、そのままではエスケープキーを捕捉できません。
PreviewKeyDownイベントではエスケープキーを捕捉できるのですが、フォーム上にコントロールがあると、フォームまでPreviewKeyDownイベントが発生しません。
この場合、フォームのKeyPreviewプロパティをTrueにすると、フォームのKeyDownイベントでEscapeキーを捕捉できるようになります。
ただし、キーによっては上記方法で捕捉できないものがあります。(矢印等)
そのようなキーを捕捉したい場合は、以下の記事を参考にして、フォームで対象キーを捕捉できるようになります。
(参考)Buttonコントロールにフォーカスがあるとフォームで矢印キーのキーイベントが発生しない
参考までに、これにエスケープキーを適用すると、以下のようになります。
VB
1 <System.Security.Permissions.UIPermission( _
2 System.Security.Permissions.SecurityAction.Demand, _
3 Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _
4 Protected Overrides Function ProcessDialogKey( _
5 ByVal keyData As Keys) As Boolean
6 If (keyData And Keys.KeyCode) = Keys.Escape Then
7 Me.Close()
8 'Escapeキーの本来の処理をさせたくないときは、trueを返す
9 Return True
10 End If
11
12 Return MyBase.ProcessDialogKey(keyData)
13 End Function