사용자 정의 컨트롤에서 디자인 지원 활성화
사용자 정의 컨트롤을 만들 때 기본 컨트롤과 동일한 기능을 유지하는 것이 바람직합니다. 그러한 기능 중 하나는 디자인 타임에 헤더를 끌어 열 크기를 조정하는 기능입니다. 그러나 기본적으로 사용자 지정 컨트롤은 이 동작을 상속하지 않습니다.
Windows Forms 디자이너는 특정 컨트롤에 대해 전용 디자이너 클래스를 사용합니다. 예를 들어 ListView의 디자이너는 내부 System.Windows.Forms.Design.ListViewDesigner 클래스입니다. 사용자 컨트롤에 ListView를 배치할 때 열 머리글을 드래그하는 기능을 제공하지 않는 기본 ControlDesigner가 대신 사용됩니다.
이 문제를 해결하려면 사용자 컨트롤에 대한 사용자 지정 디자이너를 만들 수 있습니다. 공용 속성을 통해 기본 ListView를 노출하고 [DesignerSerializationVisibility] 특성을 적용하면 디자인 타임에 ListView의 속성에 액세스하고 수정할 수 있습니다. 또한 사용자 컨트롤 클래스에 [Designer] 속성을 적용하면 기본 디자이너를 사용자 정의 디자이너로 바꿀 수 있습니다.
다음 예를 고려하세요.
using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; // Note: add reference required: System.Design.dll namespace WindowsFormsApplication1 { [Designer(typeof(MyDesigner))] // Note: custom designer public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } // Note: property added [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ListView Employees { get { return listView1; } } } // Note: custom designer class added class MyDesigner : ControlDesigner { public override void Initialize(IComponent comp) { base.Initialize(comp); var uc = (UserControl1)comp; EnableDesignMode(uc.Employees, "Employees"); } } }
이 사용자 정의 디자이너를 사용하여 , 사용자 컨트롤 내의 ListView를 클릭하면 독립형 ListView처럼 디자인할 수 있습니다.
위 내용은 사용자 지정 Windows Forms 컨트롤에서 디자인 타임 열 크기 조정을 활성화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!