컨트롤 Overriding 해서 새로운 나만의 컨트롤 만들기

C# & MFC
Visal Studio .Net 2005 기준으로 작성되었다.
TextBox 를 상속받아서 컨트롤을 만든후에 그 컨트롤에 기능을 추가하였다.
일반공용컨트롤에서 만든컨트롤로 Tab 키를 누르게 되면 글자가 반전된는기능이다.
여기에선 컨트롤을 상속받아 Overriding 해서 자신만의 컨트롤를 쉽게 만들어
쓸수 있다는데 포인트가 있다.

[Source Download]



새항목추가 메뉴를 누른다.



창이 뜨면 사용자 지정컨트롤을 선택하고 이름을 정한후 확인을 누른다.


컨트롤을 만든후에 컴파일을 한다. 그럼 왼쪽 구성요소 란에 직접상속받아 만든 컨트롤 CustomControl1이
나타난다. 이컨트롤을 끌어서 Form 에 추가하면 된다.


추가한 컨트롤의 소스 보기를 하게 되면 다음과 같은 소스가 나오는데 처음에 Control로 되어있는것을
TextBox로 바꾼다. 그럼 TextBox의 기능을 할수 있게 된다.

여기에 Tab을 눌렀을때 반전되는 소스를 추가하도록한다.
    public partial class CustomControl1 : TextBox // Control
    {
        public CustomControl1()
        {
            InitializeComponent();
            Init();
        }
        // 텍스트박스에 Enter 눌렀을때 일어나는 이벤트 등록
        public void Init()
        {
            this.Text = "글자선택반전";
            this.Enter += new System.EventHandler(highlighter);
        }
        // 글자를 반전시킨다
        private void highlighter(Object obj, EventArgs e)
        {
            this.SelectionStart = 0;
            this.SelectionLength = this.Text.Length;
        }
    }




실행해서 다음과 같이 Tab 키를 누르게 되면 글자가 선택되게 된다.
기존에 컨트롤 속성에서 반전되게 할수있는 옵션을 있을것 같은데 찾아보지 않았다.
여기에서 강조하는것은 기능을 추가한 자기만의 컨트롤을 만들어 사용한다는 점이다.


신고
Posted by 녹두장군