Unload ステートメントを使用して、
画面をアンロードしているのですが、できないことがあります。
現象理由、対応方法がわかる方おりましたらお教えください。
OSはWindowsXPです。
Unloadできない・・・と言うことは、環境はVB6以前ですネ?
最近、環境を書かない方が多いので、掲示板で問い合わせたい
場合は、ちゃんと、環境を書きましょう!
また、何をどうしているのだが、その場合、こうこうなる。
と言う前提の説明も不足している為、Unloadできないと書かれて
も、コメントのしようがありません。
それ以前の状態を詳しく書いて下さい。
多分、何かタイミング的なものか、デバイスアクセスのクローズ
忘れなのか・・・あくまで推測の域を脱しません。
以上。
.NETの場合、起動フォームはアンロードできません。
アンロードすると終了するはず…
詳しくはヘルプを見てください。載ってます。
申し訳ありません。。。
先程、投稿したものです。
ご指摘されていた通り、
環境、タイミングの記述をしてりませんでした。。。
VBはVB6 を使っております。
タイミングは、
親画面から子画面のパブリックプロシージャを呼び
その中で子画面(自分)を表示、
その後に子画面で親画面をアンロードしています。
そして、処理は親に戻ります。
ご意見ありがとうございます。。
VB.NET でも、VB6 でも、起動フォームを、子フォームからは
HIDEでいても、UNLOADできません。
ですが、方法はありますが、いろいろ悪影響もありますが・・・
標準モジュールのSsub Mainで起動するようにし、そこから
以前のスタートアップフォームになっていたフォームを表示
させます。
ここで細工・・・モーダルで表示すれば、当然ながら、子
フォームからはUNLOADできません。
ですが、モードレスで表示すれば、子フォームからUNLOAD
できます。ですが、モードレスで起動した場合、Sub Main
から起動したのですが、即終ってしまうので、フローバル
変数か何かで、そのフラグが繁華しない限り終わらないよ
うにしなければなりません。またその待ちのループでは、
CPUをあまり使わないように細工しないと、100%CPUを、
食いつぶします。
他にも方法はあると思いますが・・・
わざわざ親フォームとなるものをUNLOADしないでも、条件
的には、HIDEでもよいのでは?ある条件になった場合、全
てのフォームが閉じられ、終了するようにすればよいので
は?
ご検討下さい。
因みに、VB.NETでも、同様の方法で、可能です。
以上。
ツイート | ![]() |