QA@IT

ユーザーコントロールのプロジェクト参照について

8927 PV

お世話になっております。

VB2010Express、Win7(64bit)です。
WindowsApplication1で作成したUserControlをWindowsApplication2でプロジェクト参照で使いたく思い、
下記の手順を実行しましたが、⑩のところで詰まっています。

①WindowsApplication1を作成
②UserControl1を作成(ラベルでHello Worldと書きました)
③Form1にUserControl1を貼り付け
④ビルド、実行→Hello Worldが表示されました。
⑤WindowsApprication2を作成
⑥ファイル→追加→既存のプロジェクト→WindowsApplication1.vbprojを選択→ソリューションエクスプローラに現れる
⑦いったんビルド
⑧ツールボックス→アイテムの選択→.NET Frameworkコンポーネント→UserControl1は既にチェック済み
⑨ソリューションのクリーン、リビルド
⑩ツールボックス上にUserControl1が出てきません

手順に間違いがある、または不可能である等、分かる方いらっしゃいましたら情報をお願いいたしたく投稿させて頂きました。
お手数をおかけいたしますが、よろしくお願いいたします。

回答

VS2010 Expressは手元にないので、VS2013 proで確認しましたが、

ユーザーコントロールをWindowsFormプロジェクトではなく、クラスライブラリプロジェクトに置いておけば、
自動的にツールボックスに現れるんじゃないかと思います。

今の、WindowsApplication1, WindowsApplication2 の入ったソリューションに、クラスライブラリプロジェクトを追加し、そのクラスライブラリプロジェクトを右クリックして追加>ユーザーコントロール(区別できるようわかりやすい名前にしてください)としてビルドすれば、ツールボックスに現れるんじゃないかと思います。


⑧ツールボックス→アイテムの選択→.NET Frameworkコンポーネント→UserControl1は既にチェック済み

この時、WindowsApplication1のフォームのデザイナを開いていませんか?
WindowsApplication2のフォームのデザイナでは出ていないんじゃないかと思いますがWindowsApplication2のフォームのデザイナでも出ていますか?

どうしてもexeファイルのプロジェクトのユーザーコントロールをツールボックスに表示したいとなると、

WindowsApplication2のフォームのデザイナを開いて
ツールボックス→アイテムの選択→.NET Frameworkコンポーネントの[参照]ボタンで
WindowsApplication1のexeを指定すれば出てくるとは思いますが、今 exeが置いてある場所に依存してしまいそうですし、部品であればクラスライブラリの方が良いとも思いますのでお勧めはしません。

編集 履歴 (0)
  • まず、
    WindowsApplication2のFomr1.vbのフォームデザイナを表示させている状態で、
    ツールボックス→右クリック→アイテムの選択で、UserControl1にチェックが入っていることを確認致しました。

    次に、exeを参照する方法についてですが、おっしゃるとおり依存性の問題で見送りたいと思います。
    -
  • 最後に、はじめにご指示頂いたとおり、ユーザーコントロールをWindowsFormプロジェクトでなく、クラスライブラリプロジェクトにすると、
    ツールボックスに現れてくれました。
    私はクラスライブラリプロジェクトを作成した経験が無く、このような方法で実現できることをはじめて教えていただき、感激しております。
    これでプログラムの部品化を要領よく進められそうです。
    -
  • わたくしのような初心者にご指導いただき、まことにありがとうございます。
    頂いたご指導をもとに、プログラム作成にまい進していきたいと思います。ありがとうございました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。