- PR -

VB.NET 表示画面取得

投稿者投稿内容
むっく
会議室デビュー日: 2004/02/13
投稿数: 6
投稿日時: 2004-02-23 16:20
画面をshowで表示した際に、
画面が「表示できました」という情報を取得したいのですが、
何かよい方法はありませんか?
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-02-23 16:36
引用:

sinさんの書き込み (2004-02-23 16:20) より:
画面をshowで表示した際に、
画面が「表示できました」という情報を取得したいのですが、


い、意味が分かりません…σ(^_^;)?
むっく
会議室デビュー日: 2004/02/13
投稿数: 6
投稿日時: 2004-02-23 16:51
意味がわかりませんか。。。すみません。
showしたフォームが、
きちんとshowされているかどうかを取得したいのです。

これでわかりますか・・・
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-02-23 17:34
Loadイベントではどうでしょうか。
表示される直前ということですから、初期化等は終了した後だと思います。

あるいはPaintで、実際描画されたことを確認するとか。

関係ないですけど、タイトルの「表示画面取得」は良くないですね。
「表示した画面を取得する」と読めます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-23 17:53
引用:

一郎さんの書き込み (2004-02-23 17:34) より:
Loadイベントではどうでしょうか。
表示される直前ということですから、初期化等は終了した後だと思います。

あるいはPaintで、実際描画されたことを確認するとか。

関係ないですけど、タイトルの「表示画面取得」は良くないですね。
「表示した画面を取得する」と読めます。


 表示の要求をした方が、「本当に表示されたの?」ってことじゃないでしょうか?

 イベントを作って、Loadか何かでRaiseEvent?


 私は「表示されている画面を取得する」だと思いました^o^;

#っつうことで、誤解されるおそれがないか、もう一度読み返しましょう
↑>sinさん  
読み返して「うん、これだとこのコメントは一郎さん宛のようだぞ」
言ってる奴が同じことやってどうするって、ねぇ。。。

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-02-23 17:54 ]
むっく
会議室デビュー日: 2004/02/13
投稿数: 6
投稿日時: 2004-02-23 18:48
引用:

Jittaさんの書き込み (2004-02-23 17:53) より:
引用:

一郎さんの書き込み (2004-02-23 17:34) より:
Loadイベントではどうでしょうか。
表示される直前ということですから、初期化等は終了した後だと思います。

あるいはPaintで、実際描画されたことを確認するとか。

関係ないですけど、タイトルの「表示画面取得」は良くないですね。
「表示した画面を取得する」と読めます。


 表示の要求をした方が、「本当に表示されたの?」ってことじゃないでしょうか?

 イベントを作って、Loadか何かでRaiseEvent?


 私は「表示されている画面を取得する」だと思いました^o^;

#っつうことで、誤解されるおそれがないか、もう一度読み返しましょう
↑>sinさん  
読み返して「うん、これだとこのコメントは一郎さん宛のようだぞ」
言ってる奴が同じことやってどうするって、ねぇ。。。

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-02-23 17:54 ]



Jittaさんの言う通りで、
#表示の要求をした方が、「本当に表示されたの?」ってことじゃないでしょうか?
ということです。

下記、簡潔にですが一部ソースです。
frmMain.DefInstance.Show()
Dim tempChild As Form
Dim i As Integer
i = 0

Do

tempChild = Form.ActiveForm

If tempChild.Text = "フォームのテキスト" Then
i = 1
End If
MsgBox(tempChild.Text)
Loop Until i = 1

要求したフォームが表示されるまで、要求側でウェイトを掛けたいのです。

現状、
>tempChild = Form.ActiveForm
で、うまくアクティブ側が取れません。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-23 19:35
 メッセージボックスを表示したら、アクティブなフォームはそのメッセージボックスか、メッセージボックスを表示させたフォームになってしまいますから、まぁ、その方法では無理ですね。

 ではメッセージボックスを出さなかったらいいかと、メッセージボックスだけ削ると、今度はCPU使用率が100%になってしまいます。


 私が安易に思いつくのは、イベントを利用することです。

dim childForm as Form
childForm = new 子フォーム
AddEventHandler childForm.Activated, Addressof イベントハンドラ
childForm.Show

private sub イベントハンドラ
dim cform as form = ctype(sender, form)
removeeventhandler cform.Activated, addressof イベントハンドラ
messagebox.show(cform.text)
むっく
会議室デビュー日: 2004/02/13
投稿数: 6
投稿日時: 2004-02-23 20:28
ご回答ありがとうございます。

イベントですか・・・
AddEventHandlerやremoveeventhandlerの使い方がわかりませんが、
MSDNで調べて試行錯誤してみます。

スキルアップ/キャリアアップ(JOB@IT)