2015-01-11 1 views
0

내 usercontrol은 디자인 타임에 부모 폼 클래스 내부에서 컨트롤을 정의 (선언 및 초기화)하고 싶습니다. 예를 들어, UserControl을 (또는 관련 디자이너 클래스)과 같이 부모의 형태로 패널 "에 Panel1"을 선언 할 수 있어야한다 :내 usercontrol을 사용하여 컨트롤을 디자인 타임에 부모 폼으로 정의하는 방법?

Partial Class Form1 
Inherits System.Windows.Forms.Form 

<System.Diagnostics.DebuggerStepThrough()> _ 
Private Sub InitializeComponent() 
     Me.MyUserControl1 = New MySolution.MyUserControl 
     Me.Panel1 = New System.Windows.Forms.Panel 
     Me.SuspendLayout() 
     '   ' 
     'MyUserControl1 
     ' 
     Me.MyUserControl1.Controls.Add(Me.Panel1) 
     Me.MyUserControl1.Location = New System.Drawing.Point(50, 50) 
     Me.MyUserControl1.Name = "MyUserControl1" 
     Me.MyUserControl1.Size = New System.Drawing.Size(102, 102) 
     Me.MyUserControl1.TabIndex = 0 
     ' 
     'Panel1 
     ' 
     Me.Panel1.Location = New System.Drawing.Point(1, 1) 
     Me.Panel1.Name = "Panel1" 
     Me.Panel1.Size = New System.Drawing.Size(100, 100) 
     Me.Panel1.TabIndex = 1 
     ' 
     'Form1 
     ' 
     Me.ClientSize = New System.Drawing.Size(399, 262) 
     Me.Controls.Add(Me.MyUserControl1) 
     Me.Name = "Form1" 
     Me.Text = "Form1" 
     Me.ResumeLayout(False) 
End Sub 

Friend WithEvents MyUserControl1 As MySolution.MyUserControl 
Friend WithEvents Panel1 As System.Windows.Forms.Panel 
End Class 

참고 :이 선언 동적이어야한다. 나는 내가 할 수있는 "Panel1"내 usercontrol 속성을 추가하여 얻을 수 있지만 내가 필요한 것은 코드 내에서이 선언을 추가하는 것입니다 속성으로 항목을 제공하지 않습니다.

이 기능이있는 기본 제공 Winforms 컨트롤에는 TabControl 및 ListView가 있습니다. 이 시나리오를 시도해보십시오. 디자이너의 양식에 TabControl을 추가하고 디자이너가 생성 한 양식 파일을 보면 TabPage1 및 TabPage2가 양식 코드 내에서 선언되고 초기화되었음을 알 수 있습니다. 다른 탭을 추가 한 다음 디자이너가 생성 한 파일을 다시 참조하면 TabControl 디자이너가 TabPage3을 정의 된 항목에 추가하고 TabControl에서 해당 TabPage를 삭제하며 해당하는 선언 및 초기화가 파일에서 삭제 된 것을 확인할 수 있습니다 소스 코드.

내 사용자 정의 컨트롤 및/또는 해당 디자이너 내에서 어떻게 구현할 수 있습니까? 도움 주셔서 감사합니다. 사용 함수를 통해 가능

답변