C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: vb2005でハマリ中 誰か助けてください(;;)


(過去ログ 28 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■13083 / inTopicNo.1)  vb2005でハマリ中 誰か助けてください(;;)
  
□投稿者/ しほちゃん☆ (1回)-(2008/01/24(Thu) 10:09:53)

分類:[.NET 全般] 

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

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

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

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

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

初心者です、宜しくお願いいたします。(;;)
引用返信 編集キー/
■13084 / inTopicNo.2)  Re[1]: vb2005でハマリ中 誰か助けてください(;;)
□投稿者/ オガシン (6回)-(2008/01/24(Thu) 10:28:23)
2008/01/24(Thu) 10:31:34 編集(投稿者)
No13083 (しほちゃん☆ さん) に返信
ログイン画面.Activeを追加してログイン画面をアクティブにしてあげたらいいと思います。

IPを取得して(初期起動処理みたいなもの?)ログイン画面を出すなら、透明の画面を使うのではなく
Sub Mainを記述して実装したほうがいいと思います。

下記みたいになるのではないでしょうか。
(プロジェクトの設定でスタートアップフォームの設定を変える必要があります。)

    Shared Sub Main()
        Dim frm As New ログイン画面

    'IPを取得処理
        If IPが取得できたら Then
            Application.Run(frm)
        End If
    End Sub

#図表モードにしました^^;

引用返信 編集キー/
■13085 / inTopicNo.3)  Re[1]: vb2005でハマリ中 誰か助けてください(;;)
□投稿者/ 魔界の仮面弁士 (589回)-(2008/01/24(Thu) 10:29:29)
No13083 (しほちゃん☆ さん) に返信
> IP取得画面は透明100%にしていますのでログイン画面しかみえない状態です。
そもそも何故、そのIP 取得処理は、わざわざ「画面(Form の事かな?)」に実装されているのでしょうか?
見えない画面など使わず、Main メソッドやログイン画面から、IP を取得すれば済む話だと思いますが…。

> TOPMOSTでログイン画面をむりやり前にだしても選択されている画面はIP取得画面でした
ログイン画面を Activate() してみては如何でしょう。
タイミング的には、Load 時というより、Shown 時や Activated 時かな?

引用返信 編集キー/
■13091 / inTopicNo.4)  Re[2]: vb2005でハマリ中 誰か助けてください(;;)
□投稿者/ しほちゃん☆ (2回)-(2008/01/24(Thu) 11:15:59)
No13084 (オガシン さん) に返信
Shared Sub Main()
Dim frm As New ログイン画面

    'IPを取得処理
If IPが取得できたら Then
Application.Run(frm)
End If
End Sub

上記の書き方でできました。ありがとうございました。
showdialogでやってところログイン画面にフォーカスはいくのですがログイン画面でログイン画面を
クリックすると実行(デバック)がおわってしましました。

ありがとうございました。(^^)
引用返信 編集キー/
■13092 / inTopicNo.5)  Re[2]: vb2005でハマリ中 誰か助けてください(;;)
□投稿者/ しほちゃん☆ (3回)-(2008/01/24(Thu) 11:25:14)
No13085 (魔界の仮面弁士 さん) に返信
> ■No13083 (しほちゃん☆ さん) に返信
>>IP取得画面は透明100%にしていますのでログイン画面しかみえない状態です。
> そもそも何故、そのIP 取得処理は、わざわざ「画面(Form の事かな?)」に実装されているのでしょうか?
> 見えない画面など使わず、Main メソッドやログイン画面から、IP を取得すれば済む話だと思いますが…。

IPが取得できたらログイン画面 取得できなかったら店舗(ジャーナル)にとぶように場合わけするのに
必要だとおもいました。なのでみえない画面のロード時に書いています。

>>TOPMOSTでログイン画面をむりやり前にだしても選択されている画面はIP取得画面でした
> ログイン画面を Activate() してみては如何でしょう。
> タイミング的には、Load 時というより、Shown 時や Activated 時かな?

ありがとうございました。
ログイン画面をactivateにしたらできました。
簡単な質問してしまって恥ずかしいです。
またよろしく願いします。

引用返信 編集キー/
■13093 / inTopicNo.6)  Re[3]: vb2005でハマリ中 誰か助けてください(;;)
□投稿者/ しほちゃん☆ (5回)-(2008/01/24(Thu) 11:35:24)
No13091 (しほちゃん☆ さん) に返信
> ■No13084 (オガシン さん) に返信
> Shared Sub Main()
> Dim frm As New ログイン画面
>
>     'IPを取得処理
> If IPが取得できたら Then
> Application.Run(frm)
> End If
> End Sub
>
> 上記の書き方でできました。ありがとうございました。
> showdialogでやってところログイン画面にフォーカスはいくのですがログイン画面でログイン画面を
> クリックすると実行(デバック)がおわってしましました。
>
> ありがとうございました。(^^)
解決済み
引用返信 編集キー/
■13095 / inTopicNo.7)  Re[3]: vb2005でハマリ中 誰か助けてください(;;)
□投稿者/ シャノン (271回)-(2008/01/24(Thu) 11:55:10)
No13092 (しほちゃん☆ さん) に返信
> IPが取得できたらログイン画面 取得できなかったら店舗(ジャーナル)にとぶように場合わけするのに
> 必要だとおもいました。なのでみえない画面のロード時に書いています。

メインウィンドウを開く前に IP 取得処理をする必要があるというわけですね。
ところで、プログラムを実行したとき、一番最初に行われる処理は、フォームの Load だと思っていたりします?
だとしたら、そうではありません。
VB.NETで、メインウィンドウを開く前に行う必要がある処理は、Sub Main で行うべきだと思います。

この辺を参考にしてください。
http://dobon.net/vb/dotnet/programing/makeentrypoint.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -