2016-09-04 12 views
0

以下は再現可能です。公開されているにもかかわらず、別のソリューションからユーザーコントロールを追加できません。

私には2つの解決策があります。

1つにユーザーコントロールがあります。そのソリューションは、だから私は、ユーザーの溶液を作成したtestusercontrolproj

、他のソリューションがPROJECTA

と呼ばれていると私はPROJECTAは、他の溶液からユーザーコントロールを使用するために取得しようとしている

testusercontrolprojと呼ばれていますcontrol - testusercontrolprojツールボックスに表示されます。

次に、ユーザーコントロールを使用するソリューションProjectAを作成します。私はソリューションを右クリックし、既存のプロジェクトを追加することを選択し、私はtestusercontrolprojを指し、私はそれをインポートします。そして私はそれへの参照を追加します。それにusingステートメントを追加します。そして、私は解決策を再構築し、projectAを再構築します。それでも、Visual Studioを再起動する -

私は、ProjectAの解決策の中で、私はtestusercontrolprojプロジェクトに行くと、そこでフォームをダブルクリックし、ツールボックスをクリックすると、私はコントロールが表示されます。

ただし、ProjectA内でProjectA内のフォームをダブルクリックしてツールボックスをクリックすると、ユーザーコントロールが表示されません。

ここでの回答C# adding usercontrol from different project in solutionは公開することを提案していますが、ユーザーコントロールは公開されていますが、これはデフォルトです。 public partial class UserControl1 : UserControl

enter image description here

答えて

0

私は答えを持っていると思います。

プロジェクトをユーザーコントロールで追加する必要はありませんが、それは役に立ちません。

ユーザーコントロールをインポートするソリューションを右クリックします。したがって、この場合、「ProjectA」をクリックし、「Add」をクリックして「Existing Item」をクリックします。次に、他のプロジェクトのユーザーコントロールを参照し、[OK]をクリックします。

次に、プロジェクトの下にユーザーコントロールが表示されます。

enter image description here

そして、あなたはまた、ユーザーコントロールがツールボックスに表示されることがわかります。 (もちろん、ソリューションビルドリビルドソリューションを再構築する必要があるかもしれませんが、とにかく以前のケースでした)

ソリューションからユーザーコントロールを使ってプロジェクトを削除することもできますユーザーコントロールを他のプロジェクト、projectA、またはソリューションに一般的に持ち込むことはないので、ポイントはなく、前述のように、ユーザーコントロールだけをプロジェクトに追加します。それが欠けていたので、私はそのプロジェクトのツールバーでユーザーコントロールを取得できませんでした。

参照ではなくコピーを作成するようです。

+0

いいえ、コピーを作成しないでください。それはコードの再利用の目的を打ち破ります。ソリューションには2つのWindowsフォームベースのプロジェクトがあります。どちらもEXEファイルにコンパイルされます。testusercontrolprojのWindowsアプリケーションではなく、プロジェクトのプロパティからクラスライブラリに出力タイプを変更し、コピーしたユーザーコントロールを削除して、どれだけ遠くにいるかを確認してください。 – Andez

関連する問題