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

[Visual Basic Q & A 掲示板] [過去ログの一覧]


しほちゃん 2008/01/24(木) 10:21:23 <初心者>
環境 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 <常連>
> IP取得画面は透明100%にしていますのでログイン画面しかみえない状態です。
そもそも何故、そのIP 取得処理は、わざわざ「画面(Form の事かな?)」に実装されているのでしょうか?
見えない画面など使わず、Main メソッドやログイン画面から、IP を取得するようにしておけば済む話だと思いますが…。

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

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

魔界の仮面弁士 2008/01/24(木) 10:47:12 <常連>
と。良く見たら板違いでしたね。ここは VB2-VB6 専用の掲示板です。
隣の掲示板に移動しておいてください。


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

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

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

しほちゃん 2008/01/24(木) 11:41:09
[[解決]]

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

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library