첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ ParentControlDesigner 클래스를 사용해 디자이너 모드에서 편집 가능한 사용자 컨트롤 만들기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


SampleControlDesigner.cs

 

 

using System.ComponentModel;

using System.Windows.Forms.Design;

 

namespace TestProject

{

    /// <summary>

    /// 샘플 컨트롤 디자이너

    /// </summary>

    public class SampleControlDesigner : ParentControlDesigner

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 초기화 하기 - Initialize(component)

 

        /// <summary>

        /// 초기화 하기

        /// </summary>

        /// <param name="component">컴포넌트</param>

        public override void Initialize(IComponent component)

        {

            base.Initialize(component);

 

            SampleControl sampleControl = component as SampleControl;

 

            if(sampleControl != null)

            {

                base.EnableDesignMode(sampleControl.RootPanel, "RootPanel");

            }

        }

 

        #endregion

    }

}

 

 

SampleControl.cs

 

 

using System.ComponentModel;

using System.Windows.Forms;

 

namespace TestProject

{

    /// <summary>

    /// 샘플 컨트롤

    /// </summary>

    [Designer(typeof(SampleControlDesigner))]

    public partial class SampleControl : UserControl

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Field

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region Field

 

        [Category("SampleControl"),Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]

        public Panel RootPanel => this.rootPanel;

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 생성자 - SampleControl()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public SampleControl()

        {

            InitializeComponent();

        }

 

        #endregion

    }

}

 

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요