Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
フォームがエンターキーでクローズしない
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30928#CommentId86033
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2023/12/13 14:26:06
> ここまではよろしいでしょうか?
理解できている前提で、続けていきます。
> (2) その後、そのフォームの DialogResult が None 以外に設定された場合、
> 次のアイドル時にそのフォームは(Close を呼んだり×を押したりせずとも)閉じられます。
ShowDialog で表示された Form の DialogResult プロパティの値が変更される主な要因としては、
🔹Me.DialogResult を直接書き換えた
🔹Button1.DialogResult が 非 None なボタンのクリック操作が行われた
の 2 パターンです。これに加えて、下記のようなパターンでも変化します。
★現在値が None の状態で下記が行われると Cancel になり、ダイアログは閉じられます。
🔹ユーザーが右上の閉じるボタン「×」を押す
🔹タスクマネージャーから、そのウィンドウが閉じられる
🔹そのダイアログの Close メソッドを呼び出す
🔹そのダイアログの Hide メソッドを呼び出す
🔹そのダイアログの Visible プロパティが False に変更される
★フォームが閉じられる前に下記の動作が行われると、DialogResult が非 None から None に戻り、閉じる動作がキャンセルされます。
🔹Closing イベント/ FormClosing イベントで e.Cancel が True に変更された
🔹OnClosing メソッド/ OnFormClosing メソッドで e.Cancel が True に変更された
🔹フォームの DialogResult プロパティに None が設定された
🔸「次のアイドル状態に入る前」に、DialogResult プロパティが None な Button の Click が呼び出された
そして最後の 🔸 マークの事象が、今回の原因に当たるというわけです。
説明箇所で不明な点があれば答えますので、
>> 当方浅学のため詳しくは解りませんが
と投げ出さないで欲しいかな…。
> If e.KeyCode = Keys.Return Or e.KeyCode = Keys.Tab Or e.KeyCode = Keys.Enter Then
あとこれ、正しくは Or ではなく OrElse ですね。