• ベストアンサー

フォームが show されるとき

スミマセン。教えていただきたいことがあります。 メインのフォームがあり、サブでフォームの追加でもう一枚作成し、 メインのフォームから実行時にボタンなどのイベント等でサブのフォームをshow したときは、サブのフォームは実際には表示されるだけですか? (アプリケーション起動時に既にサブのフォームはインスタンス化されているのでしょうか?ですよね?) 閉じるボタンを押したとき(普通の場合)はサブのフォームは非表示になっただけで破棄されていませんよね? 良くわかりません...よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 ※いろいろ省略しています。

psychesine
質問者

お礼

ありがとうございます。 そうなんですか..インスタンス化されていないのですか...

その他の回答 (2)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

そうでしたっけ・・・ VBのバージョンが書かれていませんが、 例えばVB6だと、 ・アプリケーション起動時に「サブフォームのインスタンス化」は行われない。 ・Showが実行された時点でインスタンスが作成される。 #厳密には、 #フォームのPublic変数等にアクセスするとInitializeイベントが発生するので、 #この時点でインスタンス化が行われると思われます。 #その後、表示用の情報の設定が行われ(Load)、表示(Show)が行われる・・・ ・フォームの右上のXボタンを押すとUnloadされる。 #表示用の情報はこの時点で破棄されるが、Public変数の情報は保持されるので、 #この状態では、インスタンスは保持されている。 とかの動作だったはずですが・・・ 別のバージョンだと違うのかも知れませんけど・・・

psychesine
質問者

お礼

すみません!バージョン忘れてました。 2005です。 ありがとうございました。

  • stiffels
  • ベストアンサー率34% (25/72)
回答No.1

通常VBのフォームデザイナで作成したフォームであれば 非表示状態でインスタンスが作成されているはずです。 閉じるボタンで閉じた場合も、非表示になっているだけです。 VBではUnload Meなどでインスタンスの破棄をしない限りは メモリ上に残ったままです。

psychesine
質問者

お礼

ありがとうございます。 安心しました。

関連するQ&A