2016-10-07 8 views
1

私はそのコントロール内に他のコントロール(タブコントロールのようなものですが、タブコントロールではありません)のコレクションがあります。子コントロール、deisgnモードの子コントロールを含むユーザーコントロール

私は自分のコントロールをフォーム上に持っています。カスタムコレクションデザイナーフォームを使用して新しい子コントロールを追加できますが、問題はありません。

フォームビューからコントロールをデザインモードで子コントロールに追加できます。現在、子コントロールを選択してドロップすると、チェックボックスは子コントロールではなく親コントロールに追加され、すべての子コントロールの上に配置されます。

子コントロールの上にドロップされたコントロールを、実際には子コントロールに追加し、デザインモードでは親ではないようにするにはどうすればよいですか?それは何かに追加する必要がある属性ですか?追加するコントロールをトラップするカスタムコードを追加する必要がありますか?

答えて

1

まず、親コントロールのように動作するために、内部コントロールデザイナーを有効にします。それは外側のコントロールでホストされているとき

[Designer(typeof(ParentControlDesigner))] 
public partial class InnerControl : UserControl 

そして、外部制御のための新しいコントロールデザイナーを作成することにより、内部コントロールのデザインモードを有効にする:

[Designer(typeof(OuterControlDesigner))] 
public partial class OuterControl : UserControl 
{ 
    public OuterControl() 
    { 
     InitializeComponent(); 
    } 
    public InnerControl InnerControl { get { return innerControl1; } } 
} 

public class OuterControlDesigner:ControlDesigner 
{ 
    public override void Initialize(IComponent component) 
    { 
     base.Initialize(component); 
     this.EnableDesignMode(((OuterControl)this.Control).InnerControl, "InnerControl"); 
    } 
} 
+0

ありがとうございます。 – James

+0

これは私が探していたものです。ありがとうございます –

+0

@ムナムヨウフ、素晴らしい!あなたは大歓迎です:) –

関連する問題