2010-03-05 118 views
2

我創建了一個擁有3個面板的UserControl。如何將控件放到用戶控件的面板上?

我該做什麼是將其中一個面板暴露給Visual Studio設計器,以便您可以在該面板中放置控件。

目前我有一個窗體上的用戶控件,但拖動說它上面的文本框將文本框畫在UserControl上,而不是用戶控件的一部分。

回答

2

需要進行手術以使嵌套面板可設計。這個步驟在這blog post很好解釋。

2

@nobugz答案中的博客文章非常好。認爲以下vb例子可能會幫助其他人。

正常創建您的用戶控件。

在此示例中,控件名稱爲Horizo​​ntalCollapsiblePanel,並且ContentPanel是要顯示給設計者的面板。

將設計器屬性添加到類語句中。

<System.ComponentModel.Designer(GetType(HorizontalCollapsiblePanel.Designer))> _ 
Public Class HorizontalCollapsiblePanel 

爲要暴露的面板創建只讀屬性。

<System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)> _ 
Public ReadOnly Property Content() As Panel 
    Get 
     Return Me.ContentPanel 
    End Get 
End Property 

在Horizo​​ntalCollapisblePanel類中創建一個供設計人員使用的類。

Public Class Designer 
    Inherits System.Windows.Forms.Design.ControlDesigner 

    Public Overrides Sub Initialize(ByVal component As System.ComponentModel.IComponent) 
     MyBase.Initialize(component) 

     EnableDesignMode(DirectCast(component, HorizontalCollapsiblePanel).Content, "Content") 

    End Sub 

End Class 

注意System.Windows.Forms.Design.ControlDesigner要求System.Design.dll參考。

+0

乾杯!我發現的大多數VB.Net示例似乎都是直接的C#轉換,如果工作與否都沒有測試。這種方式對我來說很有魅力! – 2011-10-19 11:36:15

相關問題