- - PR -
VB.NET 表示画面取得
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-23 16:20
画面をshowで表示した際に、
画面が「表示できました」という情報を取得したいのですが、 何かよい方法はありませんか? | ||||||||
|
投稿日時: 2004-02-23 16:36
い、意味が分かりません…σ(^_^;)? | ||||||||
|
投稿日時: 2004-02-23 16:51
意味がわかりませんか。。。すみません。
showしたフォームが、 きちんとshowされているかどうかを取得したいのです。 これでわかりますか・・・ | ||||||||
|
投稿日時: 2004-02-23 17:34
Loadイベントではどうでしょうか。
表示される直前ということですから、初期化等は終了した後だと思います。 あるいはPaintで、実際描画されたことを確認するとか。 関係ないですけど、タイトルの「表示画面取得」は良くないですね。 「表示した画面を取得する」と読めます。 | ||||||||
|
投稿日時: 2004-02-23 17:53
表示の要求をした方が、「本当に表示されたの?」ってことじゃないでしょうか? イベントを作って、Loadか何かでRaiseEvent? 私は「表示されている画面を取得する」だと思いました^o^; #っつうことで、誤解されるおそれがないか、もう一度読み返しましょう ↑>sinさん 読み返して「うん、これだとこのコメントは一郎さん宛のようだぞ」 言ってる奴が同じことやってどうするって、ねぇ。。。 [ メッセージ編集済み 編集者: Jitta 編集日時 2004-02-23 17:54 ] | ||||||||
|
投稿日時: 2004-02-23 18:48
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 で、うまくアクティブ側が取れません。 | ||||||||
|
投稿日時: 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-23 20:28
ご回答ありがとうございます。
イベントですか・・・ AddEventHandlerやremoveeventhandlerの使い方がわかりませんが、 MSDNで調べて試行錯誤してみます。 | ||||||||
