2

アセンブリ dll にあるUserControl の子孫を作成しました。

コントロールをフォームにドロップするにはどうすればよいですか?

namespace StackOverflowExample
{
   public partial class MonthViewCalendar : UserControl
   {
      ...
   }
}

ソリューション エクスプローラーの [参照]ノードの下にアセンブリへの参照を追加しましたが、ツールボックスに新しいコントロールが表示されません。

ツールボックスにコントロールを表示してフォームにドロップできるようにするにはどうすればよいですか?


更新 1 :

Visual Studioオプションでアセンブリをビルドしようとしました:

ツール-->オプション... --> Windows フォーム デザイナー--> AutoToolboxPopulate = true

新しいソリューションのツールボックスにコントロールが表示されませんでした。

注:どういうわけか誤って「...それはアセンブリdllにありません...」と書きました。特にアセンブリdllにある場合、どうやってそれを書くことができたのかわかりません。コントロールは、同じプロジェクトにあるときに魔法のように表示されますが、別のプロジェクト/ソリューションになった今では表示されません。


更新 2: 回答

  1. ツールボックスを右クリック
  2. [項目を選択...] を選択します。
  3. .NET Framework コンポーネントタブ
  4. [参照... ] を選択します。
  5. コントロールを含むアセンブリ dllファイルを参照し、 [開く] を選択します。

    注: アセンブリ内のコントロールは、.NET Framework コンポーネントのリストにサイレントに追加されます。

  6. ツールボックスに表示する各コントロールにチェックを入れます
  7. [ OK] を選択
4

5 に答える 5

4

通常、プロジェクトをビルドすると、ユーザー コントロールがツールボックスの上部に表示されます。通常、各アセンブリとそこにあるコントロールを含む新しいペインが表示されます。

それが起こらない場合は、ツールボックスを右クリックして [アイテムの選択] を選択し、[. NET Framework コンポーネント]の下でアセンブリを参照して追加し、コントロールがオンになっていることを確認して、コントロールを追加することもできます。

于 2008-10-24T14:34:42.003 に答える
1

プロジェクト (コントロール/コンポーネントを含む) がソリューションと同じフォルダーにある場合、ユーザー コントロールとコンポーネントは vs2005 によってツールボックスに自動的に追加されるだけです。このプロジェクトがサブフォルダーにある場合、vs2005 はコントロールとコンポーネントをツールボックスに追加しません。

于 2011-05-16T11:07:19.163 に答える
0

これにはいくつかの問題がありました。最終的には、再構築して再参照するだけで機能します。私は UserControl から継承することを好みました。それは私の人生をよりシンプルにしました;)

たとえば、「丸い境界線」ラベルを作成する場合は、次のようにします。

using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace YourUIControls
{
    [DefaultProperty("TextString")]
    [DefaultEvent("TextClick")]
    public partial class RoundedLabel : UserControl
    {
         public RoundedLabel()
         {
             InitializeComponent();
         }
         protected override void OnPaint(PaintEventArgs e)
         {
             //Draw your label here…
         }
     }
}

コンパイルして、出力への参照を追加します。それをツールボックスにドラッグし、後でデザイナーにドラッグできます。

于 2008-10-24T15:08:52.607 に答える
0

作成したコントロールを含むプロジェクトをビルドし、ツールボックスを再構築するためのオプションが設定されていることを確認する必要があります。デフォルトから変更していない場合は、動作するはずです。それ以外の場合は、[ツール] --> [オプション...]に移動し、[Windows フォーム デザイナ] グループを選択します。AutoToolboxPopulateオプションがtrueに設定されていることを確認してください。

それが機能するためには必要ありませんToolboxItemAttribute。提供アセンブリが消費アセンブリと同じソリューション内にある場合は、ツールボックスに表示されます。提供するアセンブリがソリューションの一部でない場合は、ツールボックスのコンテキスト メニューから **アイテムの選択...* を選択し、アセンブリを直接追加することで、アセンブリをツールボックスに手動で追加できます。ツールボックスに自動的にピックアップさせたい場合は、ToolboxItemAttribute.

于 2008-10-24T14:30:49.063 に答える
-1

ToolboxAttribute をクラスに追加します。

于 2008-10-24T14:30:14.010 に答える