Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
フォームがエンターキーでクローズしない
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30928#CommentId86028
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
hori
 (社会人)
投稿日時
2023/12/12 19:40:04
win10 VS2019 のVBで書いています。
フォーム2つにそれぞれボタンを1つずつ貼り付け下記のように書きました。
=========================================
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim f As New Form2
If f.ShowDialog(Me) = DialogResult.OK Then
MsgBox("ok")
Else
MsgBox("no")
End If
End Sub
End Class
==========================================
Public Class Form2
Public Overloads Function ShowDialog(ByVal Owner As IWin32Window) As DialogResult
Return Me.ShowDialog()
End Function
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Button1.Select()
End Sub
Private Sub Button1_MouseUp(sender As Object, e As MouseEventArgs) Handles Button1.MouseUp
Me.DialogResult = DialogResult.OK
Me.Close()
End Sub
Private Sub Button1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles Button1.PreviewKeyDown
MsgBox(e.KeyCode.ToString())
If e.KeyCode = Keys.Return Or e.KeyCode = Keys.Tab Or e.KeyCode = Keys.Enter Then
MsgBox("pkd")
Me.DialogResult = DialogResult.OK
Me.Close()
End If
End Sub
End Class
============================================
このプログラムで Form2 に行った後、
[ボタンクリック]か[タブキーを押す]と Form2 を終われますが
[エンターキー]では、2つあるのにどちらを押しても終われません。
ちなみに[エンターキー]では、KeyCode = Return と示され
メッセージボックスの[pkd]も表示されます。
なのに、Form2 はクローズされず Form2 のボタンにフォーカスされた状態に戻ります。
10年ほど前に、るきおさんにご教授頂いた方法を使えば
テンキー横の[エンターキー]で終われるようにできますが
そもそも、このプログラムで[エンターキー]が機能しない理由を知りたいです。
判る方居られましたら、ご教示お願いいたします。