C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Escキーでフォームを閉じたい


(過去ログ 137 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■80834 / inTopicNo.1)  Escキーでフォームを閉じたい
  
□投稿者/ あ (15回)-(2016/08/13(Sat) 14:53:48)

分類:[.NET 全般] 



VB.NETでEscキーを押すことでフォームを閉じるようにしたいのですが
以下のコードを使うと、
button1にフォーカスが合っている時には閉じるのですが
合っていない時には閉じることができません。

Private Sub Button1_PreviewKeyDown(ByVal sender As Object, _
ByVal e As PreviewKeyDownEventArgs) _
Handles Button1.PreviewKeyDown
Select Case e.KeyCode
'矢印キーが押されたことを表示する
Case Keys.Escape
Button1.PerformClick()
' Me.Close()
End Select
End Sub


いつでもEscキーを押した時に閉じるようにしたいのですが



Sub Form1_KeyPress(ByVal sender As Object, _
ByVal e As KeyPressEventArgs) Handles Me.KeyPress

’ If e.KeyChar = Char.Esc Then Me.Close()

End Sub




Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Me.Close()
End If
End Sub


などを試してみましたがうまくいきませんでした。
e.KeyCharの方はescキーのコードが分かりませんでした。

どなたかご助言ください。

引用返信 編集キー/
■80835 / inTopicNo.2)  Re[1]: Escキーでフォームを閉じたい
□投稿者/ Hongliang (446回)-(2016/08/13(Sat) 15:08:50)
キーイベントは、基本的にフォーカスのあるコントロールでしか発生しません。
FormのKeyPreviewプロパティをTrueにすることで、そのフォーム上のどこにフォーカスがあってもForm(=Me)のキーイベントが発生するようになります。

ちなみに、そのFormがShowDialogで開けられたものである場合、CancelButtonプロパティを使えばキー処理の記述不要でESCキーで閉じられるようになります。
引用返信 編集キー/
■80837 / inTopicNo.3)  Re[2]: Escキーでフォームを閉じたい
□投稿者/ あ (16回)-(2016/08/13(Sat) 15:26:34)
ありがとうございます。

うまくいきました。
 
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -