- ベストアンサー
フォームが show されるとき
スミマセン。教えていただきたいことがあります。 メインのフォームがあり、サブでフォームの追加でもう一枚作成し、 メインのフォームから実行時にボタンなどのイベント等でサブのフォームをshow したときは、サブのフォームは実際には表示されるだけですか? (アプリケーション起動時に既にサブのフォームはインスタンス化されているのでしょうか?ですよね?) 閉じるボタンを押したとき(普通の場合)はサブのフォームは非表示になっただけで破棄されていませんよね? 良くわかりません...よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
2005なんですね? であるならば、アプリケーション起動時にはサブフォームのインスタンスは作成されていません。 明示的にインスタンスを作成しなければいけません。 また、閉じるボタンを押した場合ですが、内部にサブフォームを保持していれば、後はご自由に。。。 ○ private subForm as new SubForm private sub showSubForm() subForm.show() end sub private function getSubValue as string return subForm.textBox1.text end function × showSubFormを抜けた時点でsubFormのインスタンスがなくなるのでエラー private sub showSubForm() Dim subForm as new SubForm subForm.show() end sub private function getSubValue as string return subForm.textBox1.text end function ※いろいろ省略しています。
その他の回答 (2)
- dsuekichi
- ベストアンサー率64% (171/265)
そうでしたっけ・・・ VBのバージョンが書かれていませんが、 例えばVB6だと、 ・アプリケーション起動時に「サブフォームのインスタンス化」は行われない。 ・Showが実行された時点でインスタンスが作成される。 #厳密には、 #フォームのPublic変数等にアクセスするとInitializeイベントが発生するので、 #この時点でインスタンス化が行われると思われます。 #その後、表示用の情報の設定が行われ(Load)、表示(Show)が行われる・・・ ・フォームの右上のXボタンを押すとUnloadされる。 #表示用の情報はこの時点で破棄されるが、Public変数の情報は保持されるので、 #この状態では、インスタンスは保持されている。 とかの動作だったはずですが・・・ 別のバージョンだと違うのかも知れませんけど・・・
お礼
すみません!バージョン忘れてました。 2005です。 ありがとうございました。
- stiffels
- ベストアンサー率34% (25/72)
通常VBのフォームデザイナで作成したフォームであれば 非表示状態でインスタンスが作成されているはずです。 閉じるボタンで閉じた場合も、非表示になっているだけです。 VBではUnload Meなどでインスタンスの破棄をしない限りは メモリ上に残ったままです。
お礼
ありがとうございます。 安心しました。
お礼
ありがとうございます。 そうなんですか..インスタンス化されていないのですか...