Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
フォームがエンターキーでクローズしない
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30928#CommentId86039
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
hori
 (社会人)
投稿日時
2023/12/15 11:59:16
昨夕から出かけてまして、いま読ませていただきました。
多くの事を教えていただき感謝いたします。ありがとうございます。
ついでにと言っては失礼なのですが
Form に TextBox を1つ貼り
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
MsgBox("tKD")
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
MsgBox("tKP")
End Sub
Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
MsgBox("tKU")
End Sub
Private Sub TextBox1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown
MsgBox("tPKD")
End Sub
とやって、TextBox でキー入力します。
それで出てきた MsgBox の[OKボタン]をマウスでクリックしていくと "tKU" は出てきませんが
エンターキーを押していくと最後に "tKU" が繰り返されてマウスでクリックしないと終われません。
これは、TextBox1.KeyUp が、直前に表示された MsgBox 内のキー操作に反応していると云う事でしょうか?。
ちなみに、先のフォームにラベルを張って
Dim s As String = ""
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
s &= "1"
Label1.Text = s
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
s &= "2"
Label1.Text = s
End Sub
Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
s &= "3"
Label1.Text = s
End Sub
Private Sub TextBox1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown
s &= "4"
Label1.Text = s
End Sub
とやると、ラベルには "4123" と表示されるので、KeyUp も動いているようなのですが
だったら何故マウスクリックで行った場合に、"tKU" が出てこないのでしょう?。
そう云う仕様なのだと云う事なのでしょうが、
どういう場合に使う事を想定して設計されたのか僕の頭では読めません。
こんな場合に使えるよと云うのがあったらご伝授いただけませんか?
今のところ、KeyUp は使わなくても済んでいるのでスルーしていただいて結構です。
けれど、なるほどと思えたらちょっと嬉しいです。