- ベストアンサー
複数のプロジェクトファイルで
1つのソリューションファイルに2つのプロジェクトがある状態で、 Aプロジェクトの Button1 をクリックしたら、 Bプロジェクトの Form1 を表示するにはどのようにしたらいいのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
■AプロジェクトがBプロジェクトを参照できる場合 Aプロジェクトの「参照の追加」で「プロジェクト」からBプロジェクトを選択。 Button1のClickイベント内で Dim frm = New ProjB.Form1 frm.Show() とすれば表示できます。Bプロジェクトのルート名前空間をProjBとした場合です。ここは適宜変更してください。また、BプロジェクトのForm1クラスはPublicスコープである必要があります。 ■AプロジェクトがBプロジェクトを参照できない場合 AssemplyでBプロジェクトをビルドしたEXEまたはDLLを読み込み、Form1のインスタンスを作成します。 Dim asm As System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFile("C:\ProjB.exe") Dim frm As Form = TryCast(asm.CreateInstance("ProjB.Form1"), Form) If frm IsNot Nothing Then frm.Show() Else Console.WriteLine("失敗") End If アセンブリのファイルパス "C:\ProjB.exe" と 名前空間 "ProjB.Form1" は適宜修正してください。 アセンブリの読み込みに失敗した場合の処理は考慮していません。Assembly.LoadFileが例外を発生させるのでTry~End Tryで対処してください。 また、ビルドの順序でBプロジェクトを先にビルドするように指定したほうがデバッグがスムーズに行えます。
お礼
ありがとうございます。 うまくできました!