スタートページFormを後面にするには?

解決


しほちゃん  2008-01-24 10:21:23  No: 100137  IP: 192.*.*.*

環境  vb2005  framework2.0 ,OS  windows-xp/pro

ボタンなどがついていないIP取得画面でPcのIPを取得します(loadに書いてます)
IPを取得した場合ログイン画面に飛びます。(ログイン画面.showとloadに書いています)
IP取得画面は透明100%にしていますのでログイン画面しかみえない状態です。

しかし本来ログイン画面のtxtloginID.textにフォーカスをおきたいのですがIP取得画面が選択させているので
一回Enterキーをおさなければログイン画面が選択状態になりません。

IP取得画面のロードではなくボタンクリック時に飛べばフォーカスはあたるのですが
IP画面は見えなくしますのでロードでなにかできないですか?

昨日からはまっています。
TOPMOSTでログイン画面をむりやり前にだしても選択されている画面はIP取得画面でした

初心者です、宜しくお願いいたします。(;;)

編集 削除
魔界の仮面弁士  2008-01-24 10:36:11  No: 100138  IP: 192.*.*.*

> IP取得画面は透明100%にしていますのでログイン画面しかみえない状態です。
そもそも何故、そのIP 取得処理は、わざわざ「画面(Form の事かな?)」に実装されているのでしょうか?
見えない画面など使わず、Main メソッドやログイン画面から、IP を取得するようにしておけば済む話だと思いますが…。

> TOPMOSTでログイン画面をむりやり前にだしても選択されている画面はIP取得画面でした
前面/背面の Z-order 位置と、フォーカス制御は別物ですしね。

今の実装のままにするなら、ログイン画面を Activate() してみては如何でしょう。
タイミング的には、Load 時というより、Shown 時や Activated 時かな。

編集 削除
魔界の仮面弁士  2008-01-24 10:47:12  No: 100139  IP: 192.*.*.*

と。良く見たら板違いでしたね。ここは VB2-VB6 専用の掲示板です。
隣の掲示板に移動しておいてください。


> 環境  vb2005  framework2.0 ,OS  windows-xp/pro
ちなみに VB6 であっても、基本的な回答は一緒です。

完全透過なレイヤード ウィンドウで IP を取得するのではなく、
Sub Main で取得しておき、それをログイン画面に渡すか、あるいは
ログイン画面で IP を取得するような実装にするべきかと。

で。実装を変更できない場合は、仕方ないので、透過ウィンドウ側の
Activate イベントで、ログイン画面の SetFocus メソッドを呼びましょう。

編集 削除
しほちゃん  2008-01-24 11:41:09  No: 100140  IP: 192.*.*.*

掲示板違いでした。
失礼いたしました

編集 削除