2017-12-21 12 views
0

Panelのようなコントロールを作成し、Labelのようないくつかの他のコンポーネントを挿入する方法はありますか?複数のコントロールを1つのコントロールに追加するC#winforms

私はカスタムコントロールを作成し、ツールボックスのコントロールを[デザイナー]に追加しましたが、カスタムコントロールをメインプロジェクトに挿入すると表示されません。

答えて

1

私はついにそれを理解しました。

基本的に

  • (新たに作られたカスタムコントロールのデザイナに)次に、新しいcustom control
  • を作るラベルのように、ツールボックスからいくつかの 要素を追加します。それらはボックスとして表示されます。
  • 最後にカスタムコントロールのコードに行き、
    this.Controls.Add(label1)を追加します。私はこれを フォームのデザイナーに見せて、別のコントロールにコントロールを挿入しました。

MultiControl.cs:

public partial class MultiControl : Panel 
{ 
    public MultiControl() 
    { 
     InitializeComponent(); 
     this.Controls.Add(label1); 
    } 
} 

、ここでデザイナーコード:ご返信用

partial class MultiControl 
{ 
    private System.Windows.Forms.Label label1; 

    private void InitializeComponent() 
    { 
     this. = new System.Windows.Forms.Label(); 
    } 
} 
0

UserControlとメインプロジェクトの両方が同じソリューションに属している場合、UserControlはデザイナーツールボックスの上部に自動的にのように表示されます。

ただし、ユーザーコントロールが別のソリューションにあり、メインプロジェクトにdllへの参照がある場合は、ツールボックスに手動でを追加する必要があります。

メインプロジェクトでデザイナーを開いて、ツールボックスを右クリックし、を選択します。を選択します。

.NET Frameworkコンポーネントから、[参照]をクリックし、ユーザーコントロールのDLLを選択します。

[OK]をクリックします。

[OK]をクリックします。

アセンブリ内のすべてのパブリックコントロールがツールボックスに表示されるようになりました。

+0

感謝。実際に私は 'Panel'のようなコントロールを行い、Panelにもっと多くの要素を入れようとしています。そのため、この1つのコントロールは、複数のラベルが1つのアセンブリとしてパネルに表示されます。彼らはすべて同じ解決策の中にあります。 – Dextroy

+0

@Dextroyコントロールが複合コントロール(あなたのものなど)でも純粋にレンダリングされたものでも、プロシージャは同じです – MickyD

関連する問題