投稿者 hori  (社会人) 投稿日時 2023/12/13 16:22:07
返信を書きかけフォームを開いたままで居りましたので追加の回答を読んでいませんでした。

懇切丁寧なご説明で僕の頭でも理解できたと思います。たぶん。ありがとうございます。


>ボタンにフォーカスがある状態で Enter や Space を押した場合、
>標準動作としてクリックと同義になることはご存じかと思います。
>しかし Tab や F12 はそうではありません。端的に言えばその差です。

恥ずかしながら、上記を認識していませんでした。
結局、ボタンにフォーカスがある状態で Enter や Space を押した場合、

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Me.DialogResult = Button1.DialogResult

    End Sub

の記述が無くても、これと同義の事が実行されると理解すべきなのですね。

逆にこれをキャンセルする方法があれば知りたいです。
まぁ、Button1.DialogResult = DialogResult.OK でいいですか。


あと、フォームが非表示なだけでメモリーに保持されているのなら
僕はフォームを呼び出すとき同一のプロシージャじゃない限り変数にいつも同じ[f]を使って

Dim f As New Form1
Dim f As New Form2

とやっているんですが、これを

Dim f1 As New Form1
Dim f2 As New Form2

と毎回変数を変えておけば、いつでも  f2.TextBox1.text  などの値が取れると云う事でしょうか?。
別に何に使うと云う当てはありませんが、そう云う事なのかなと思っただけです。
まぁ、こういうのは人に聞かなくてもやってみればいいんでしょうけれど・・・・
ともかく、ありがとうございました。