2010-11-21 3 views
13

WinForms에서 폼에 넣을 때 컨테이너 컨트롤 (패널, 그룹 상자 등)과 같은 방식으로 도구 상자에서 다른 컨트롤을 드래그하여 내부에 추가 할 수있는 방법을 WinForms에서 UserControl을 어떻게 만들 수 있습니까? 나는 컨트롤을 컨트롤에 추가하려고 시도했으나 컨트롤을 옮길 때 추가 한 컨트롤은 그대로 유지했다. 내 컨트롤 대신 Panel (다른 컨트롤은 패널과 함께 이동).다른 컨트롤을 드롭 할 수있는 UserControl을 만드는 방법은 무엇입니까?

+0

WinForms 또는 WPF? –

+0

WinForms ........ – Juan

답변

20

예를 들어 Panel 컨트롤과 달리 UserControl은 다른 폼에 배치되면 컨테이너 컨트롤로 작동하지 않습니다. UserControl 자체를 디자인하는 동안 전체 디자인 타임 지원이 있지만 기본 동작은 다른 폼에 배치 된 후에 구성 컨트롤로 작동하지 않습니다. 도구 상자에서 다른 컨트롤을 드래그하여 다른 컨트롤을 추가 할 수없는 이유입니다.

UserControl에 이러한 유형의 동작을 추가하려면 DesignerAttribute을 사용자 정의 UserControl 클래스의 정의에 추가해야합니다. 예를 들어 :

using System.ComponentModel; 
using System.ComponentModel.Design; 

[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] 
public class MyUserControl : System.Windows.Forms.UserControl 
{ 
    //...your code here 
} 

가 (. 더 읽기에 대한 관련 MSDN 문서를 참조)


당신이 당신의 UserControl 내부 중첩 컨트롤에 대한 전체 디자이너의 지원을 구현하려면이 약간 더 어렵습니다. 보다 포괄적 인 토론은 CodeProject의 this article을 참조하십시오.

관련 문제