> 백엔드 개발 > C++ > 사용자 지정 Windows Forms 컨트롤에서 디자인 타임 열 크기 조정을 활성화하려면 어떻게 해야 합니까?

사용자 지정 Windows Forms 컨트롤에서 디자인 타임 열 크기 조정을 활성화하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2025-01-05 18:21:41
원래의
124명이 탐색했습니다.

How Can I Enable Design-Time Column Resizing in Custom Windows Forms Controls?

사용자 정의 컨트롤에서 디자인 지원 활성화

사용자 정의 컨트롤을 만들 때 기본 컨트롤과 동일한 기능을 유지하는 것이 바람직합니다. 그러한 기능 중 하나는 디자인 타임에 헤더를 끌어 열 크기를 조정하는 기능입니다. 그러나 기본적으로 사용자 지정 컨트롤은 이 동작을 상속하지 않습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿