>メインフォームとサブフォームについて入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。22:15回答数:2件こんにちは。VBを勉強中の初心者です。今メインとして使っているフォームをForm1とします。サブとして使っているフォームをFrom2とします。プログラムの実行時にForm1がでてくるのですが、Form1を起動せず、Form2を起動したいです。(メインフォームとサブフォームを入れ替えたいです)この場合はどうすればいいでしょうか?よろしくお願いします。通報するこの質問への回答は締め切られました。この回答への補足お二方ありがとうございました。どちらの方法も試させてもらったのですができませんでした。プロパティを見ていたら自分でわかりました。回答数ランキングです。職業住宅アドバイザーこの専門家の回答をチェック他の専門家の回答をチェックこのQ&Aを見た人が検索しているワードフォームメインこのQ&Aと関連する良く見られている質問QCloseとDisposeの違いみなさまこんばんわです。2008でコーディングしています。CloseとDisposeの違いについて教えていただきたいのです。)のみに限ったこととしてお話しさせていただきます。しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。すると、きれいにプロセスは終了し、イベントは発生しない模様です。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。変えるとうまくいきました。わけわからなくなってきました。ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。ここで4つの仮説を立ててみました。ありがとうございました。みなさまこんばんわです。2008でコーディングしています。CloseとDisposeの違いについて教えていただきたいのです。)のみに限ったこととしてお話しさせていただきます。しても、プロセスは残り、たとえば、...続きを読むAベストアンサーMe.Close()Me.Dispose()は根本的に違うものです。formについて、Close()メソッドはフォームの表示を終了させるメソッドです。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。>再利用できる、できないの違いDispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。Close()はインスタンスが残っているので、それを利用することができます。ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。変えるとうまくいきました。通常はどちらでもうまくいきます。ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できるShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。呼び出し方ではなく、別の要因が存在するそう思います。併記する必要がある場合があるインスタンスを明示的に破棄したほうがよい場合は多く存在します。Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。これらのメンバは、外部とのやり取りを行うものが多くあります。SQLClientに含まれるようなメンバです。外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。Using構文を使用するのとまったく同じ理由になります。正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。上記のような理由により、Me.Close()Me.Dispose()は両方書いたほうがよいと思います。蛇足ですが、Me.Dispose()Me.Close()はエラーになります。Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。存在しないMeに対してCloseメソッドを要求することはできないためです。Me.Close()Me.Dispose()は根本的に違うものです。formについて、Close()メソッドはフォームの表示を終了させるメソッドです。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。>再利用できる、できないの違いDispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。Close()はインスタンスが残っているので、それを利用することができます。ところが、アプリ...続きを読む他の回答も見るQForm間の値の渡し方1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。String)と記述しました。因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。Aベストアンサーすでに何件か回答があがっていますので、少し変わった方法をご参考までに。使われませんが、Formにはtagというプロパティがあります。これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。複数の値を呼び出し元に戻してやる場合に、区切り文字(カンマなど)で連結した文字列をtagに格納し、呼び出し元で区切り文字でsplitして、複数の値を受け渡すという手法をよく使っています。他の回答も見るQフォームのテキストボックスなどの変数名を標準モジュールから参照は可能か?フォームのテキストボックスなどの変数を標準モジュールの関数から参照する方法を教えてください。Fuction可能ですよ。