電子書籍の厳選無料作品が豊富!

こんにちは。
いつもお世話になっております。

タイトルの通りのことで悩んでいます。

自作のPGで下記の処理を行っています。

①Form1でForm2のインスタンスを作成する。
②Form1をHideで非表示にする。
③①のインスタンスをShowDialogで起動。
④Form2を閉じて帰ってきた値がCancelならForm1をCloseする。→ここで終了
⑤Form2を閉じて帰ってきた値がOKなら、Form1をshowで再表示する。
⑥From1のtextbox1にカーソルをセットする。

①~⑤まではうまくいくのですが、⑥のカーソルのセットがうまくいきません。

「Me.show」の後に「Me.Activate()」などでForm1をアクティブにしてから
フォーカスをセットしてもダメでした。

フォーカスのセットは、「ActiveControl=textbox1」でも「textbox1.forcus」でもダメです。

呼出元のForm1の指定コントロールにカーソルをセットする方法は
何かないでしょうか。

調べようにも、あまり当該内容がヒットせず見つかりません。

ご存知の方がいましたら、宜しくお願い致します。

A 回答 (3件)

なりますよ。


何か余計なコードが悪さしてるんじゃないですか?

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Hide()

Dim form = New Form2()
If form.ShowDialog() = DialogResult.OK Then
Show()
TextBox1.Focus()
Else
Close()
End If
End Sub
    • good
    • 0
この回答へのお礼

naktak様
ご回答いただきありがとうございます!
頂いた意見を元に再度調査をしていたところ
別のイベントが意図せず走っていたため起こっていた事象であることが
わかりました。
ご意見ありがとうございました!

お礼日時:2024/07/03 10:58

Fotm1から制御が離れた際にカーソルがどこになったかがまあずあるはずです。


Form1に制御が戻った際はその位置にカーソルがあるはずなので。
で、Form1を最初に表示した際、

textBox1.SelectionStart = 0;

とかしておくとどうですかね?
Form1に制御が戻ったところでやってもよいのかもしれませんが。
VBは自分で直接いじった経験があまりないので見当違いでしたらすみません。

参考まで。
    • good
    • 0
この回答へのお礼

zircon3様
ご回答いただきありがとうございます!
SelectionStart = 0;も試したのですが、うまくセットされませんでした。。
もう少し探してみます!ありがとうございました!

お礼日時:2024/07/03 10:56

From1.setfocusしてからテキストボックスにフォーカス当てたら?

    • good
    • 0
この回答へのお礼

5S6様
ご回答いただきありがとうございます!
vb.netではsetfocusが出来ませんでした。。。
同様の機能を探してみます!

お礼日時:2024/07/03 10:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A