• ベストアンサー

複数のプロジェクトファイルで

1つのソリューションファイルに2つのプロジェクトがある状態で、 Aプロジェクトの Button1 をクリックしたら、 Bプロジェクトの Form1 を表示するにはどのようにしたらいいのでしょうか。

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

  • ベストアンサー
回答No.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プロジェクトを先にビルドするように指定したほうがデバッグがスムーズに行えます。

Michigami
質問者

お礼

ありがとうございます。 うまくできました!

関連するQ&A