フォームにフォーカスを移すには?

解決


yuu  2002-06-25 07:14:13  No: 104442

.Visible=Falseで非表示にしておいたフォームをTrueで
再表示した時、別ウィンドウにあるフォーカスを表示し
たフォーム(ウィンドウ)に移したいのですが、やり方が
わかりません。どなたか教えて下さい。


Say  2002-06-25 21:21:17  No: 104443

質問がよくわかりませんが、
同一プロジェクト内であれば、
フォーカスを移したいコントロールに
SetFocusすれば、Formは自動的に
アクティブになります。

たとえば、Form1がアクティブのとき
Form2.Text1.SetFocus
とすれば、Form2がアクティブになり、
Form2上のText1にフォーカスが移ります。


yuu  2002-06-25 21:56:35  No: 104444

VBのプログラムからShellで別のEXEを実行し、その間
呼び出し元のプログラムを.Visible=Falseで非表示に
しておき、別EXEが終了した時に再表示(TopMost)させ
ています。
この時、エクスプローラー等のウィンドウが立ち上が
っていると、そちらにフォーカスがいき、再表示した
画面に移ってくれません。
SetFocusではタイトルバーは点滅します(アクティブ)が、
フォーカス自体は移りません。
説明が下手ですが、この場合に移す方法を知りたいので
す?


蜻蛉  URL  2002-06-27 05:39:20  No: 104445

Windows2000だったら仕様・・・とかどっかに書いてありましたけど
気のせいでしょうか。

私はVisibleではなく、最小化することで隠しているのですがそうしてみては?


yuu  2002-06-27 17:52:15  No: 104446

Win98からSetForegroundWindowの仕様が変わったらしい
ですね。
APIで解決しました。
Sayさん、蜻蛉さんレスありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加