2016-10-07 61 views
1

我有一個控件,在那個控件中有一個其他控件的集合(有點像標籤控件 - 但不是標籤控件)。包含子控件,設計模式編輯子控件的用戶控件

所以我有我的表單控制。我可以使用自定義集合設計器表單添加新的子控件,沒問題。

我希望能夠在窗體視圖中將控件添加到設計模式下的子控件。目前,如果我選擇子控件並放下說,複選框,則複選框將添加到父控件而不是子控件,然後位於所有子控件的頂部。

如何讓控件落在子控件上實際上添加到子控件中,而不是設計模式下的父控件?這是一個屬性,需要增加一些東西嗎?我是否必須在其中添加一些自定義代碼來捕獲添加的控件?

回答

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

@MunamYousuf,太棒了!歡迎您:) –

相關問題