2012-03-14 2 views
3

私と私の友人がクラスのプロジェクトに取り掛かっていました。彼はVBを​​好むし、私はC#を好むので、私たちはちょうど私たちのことをしました。さて、我々はプロジェクトをマージすることを考えていた。私は彼を私の中に加えましたが、私が作った形から彼が作った形をどのように開くのか分かりません。VBフォームをC#フォームから起動する

VBフォームをC#フォームから起動する方法はありますか?

答えて

4

VBでC#を混在することはできません。しかし、あなたはJon Skeetによって提案されたアプローチを使うことができます。

1)Create Multi-Project Solutions

2)プロジェクトで

あなたの友人のVBプロジェクトの参照を追加します。 nはあなたのようにあなたの友人が作成したこれらのフォームのオブジェクトを作成することができます。

YourFriendProject.SomeForm someForm = new YourFriendProject.SomeForm(); 
someForm.Show(); 
+0

あなたのソリューションはトリックでした、ありがとう! –

3

同じプロジェクトに異なる言語を追加することはできませんが、両方のプロジェクトを同じソリューションに追加して、C#プロジェクトからVBプロジェクトに参照を追加し、彼が作成したタイプを使用できるようにする必要があります。彼らが公になっている限り、もちろんです。

6

言語はプロジェクト固有です。つまり、C#プロジェクトとVBプロジェクトがあることを意味します。 1つのプロジェクトで複数の言語を混在させることはできません。ただし、ソリューションには複数の言語のプロジェクトを含めることができます。たとえば、彼はVBでフロントエンドを行い、c#でバックエンドを行い、次にvbプロジェクトの参照をc#プロジェクトに追加します。

また、VBとC#のコンバータを混在して使用することも、逆も可能です。私はVBプロジェクト全体をC#に変換しました。

+0

しかし、問題は、我々は両方の我々はそれをマージすることはないだろうと考え、フォームを作ったということです。私はあなたがVBプロジェクトにC#dllを追加することができ、その逆のことを知っています。しかし、私は彼のフォームを開いてみたいです。 (または私はあなただけを理解していません) –

+0

私はあなたが公開されている場合は、DLLから彼のフォームを開くことができると信じています。 1つのプロジェクトは、アプリケーションの読み込みを行う「マスター」でなければなりません。 –

+0

申し訳ありませんが、私はそれを見ていきます:)あるいは、彼のフォームを翻訳して再作成するだけかもしれません。 –

1

答えはすでに物事をもう少し明確にするために画像を追加し、掲載されています。

  • 2つの異なる言語のフォーム/コードを同じプロジェクトに追加することはできません。
  • VBアセンブリからCSアセンブリにプロジェクト参照を追加することができます。
  • いずれかのプロジェクトを他のソリューションに追加して、両方のプロジェクトにアクセスすることができます。

enter image description here

関連する問題