- - PR -
フォームの存在チェックについて
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-22 17:34
さかもとです。
ご存知の方がいらっしゃいましたら御教授頂ければと思います。 Winアプリ VB.Net2003 現在 form1 form2 があります。 @ form1より form2.Owner = Me form2.TopMost = True form2.Show() で form2を表示させます A form2で処理をする B処理結果をform1のテキストボックスへ戻す (この時点でform1がアクティブでform2は表示されたまま) ここまでは良いのですが Cform1で更新処理時に form2 が表示されていたら form2の更新も行う form2が非表示ならform2の更新処理も行わない ということを実現したいのですが, form1の更新時に,form2が存在しているか(表示されているか) をどのように判断すればよいのでしょうか? 使用上,form1の更新時にはform2も表示されていること,そしてform2の表示/非表示によって分岐せざるを得ません。 visible でもActiveform でも取得出来ずでした。 form2から何かフラグでも渡せば出来るのでしょうが,スマートな方法が あるのかもしれないと思い投稿しました。 宜しければ御教授頂けませんでしょうか。 お願い致します。 | ||||
|
投稿日時: 2004-12-22 19:01
if(form2 != null && form2.IsDisposed == false)
_________________ IEEE-CSDP 2004-2007 | ||||
|
投稿日時: 2004-12-22 19:34
iStation様
ご返答ありがとうございます。 IsDisposedを使用して頑張ってみます。 結果は後日掲載させて頂きます。 取り急ぎお礼まで。 | ||||
|
投稿日時: 2004-12-24 10:04
おはようございます。さかもとと申します。
先日iStation様に教えていただいた方法で下記の件を対応してみましたが 理解不足の為もう少し質問をさせて頂ければと思います。 現在 form1 で ============================================================== Private _form2 As form2 Private Sub btnA_Click..... _form2 = New form2 _form2.form1bject() = Me _form2.Owner = Me _form2.TopMost = True _form2.Show() End Sub Private Function FormChk() _form2 As New form2 ★?★ '/■画面の存在判定 If Not (_form2 Is Nothing) And (_form2.IsDisposed = False) Then Return True Else Return False End If End Function ============================================================ としていますが,★?★の部分でNewしておかないと「オブジェクトが・・・」と なります。もちろんココでNewをしてしまうと既にForm2が表示されていても いなくても判定はTrueになってしまうとは思うのですが,こうした場合は どのタイミングでインスタンスを生成し保持(??)しておけばform2の存在 チェックが行えるのでしょうか?btnA_Click...の部分でNewしたform2の存在 を拾えればいいのですが。何か物凄く基本的な部分で躓いている気がして いますが,ご指摘頂ければ幸いです。 宜しくお願い致します。 | ||||
|
投稿日時: 2004-12-24 10:23
回答ではないですが、構文としては --------------- If Not (_form2 Is Nothing) AndAlso (_form2.IsDisposed = False) Then Return True Else Return False End If --------------- とAndAlsoを使用したほうがよいかも。 | ||||
|
投稿日時: 2004-12-24 11:45
That's it!
| ||||
|
投稿日時: 2004-12-24 13:55
えんぞ@見習様,iStation様
ご返答ありがとうございます。 まず構文をAndAlsoに直し「基本的なこと」を見直した結果。 先程のサンプルで言えば ========================= Private Function FormChk() _form2 As New form2 ★?★ '/■画面の存在判定 If Not (_form2 Is Nothing) And (_form2.IsDisposed = False) Then Return True Else Return False End If End Function ======================== のところを ======================== Private 【Shared】 Function FormChk() ///略//// End Function ===================== とすればいいだけの話でした・・・。 お恥ずかしい限りです。 お手数をお掛けしました。 ありがとうございます。 | ||||
|
投稿日時: 2004-12-24 14:26
解決したのであれば...ですけど、本当の解決点なのかは疑問の余地が...
|