Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

윈폼개발

닷넷을 기반으로 한 윈도우 응용프로그램 개발 지식을 다룹니다. 비지니스 응용프로그램을 위한 닷넷 윈폼 응용프로그램은 아주 강력합니다

[기본] Control 클래스

작성자 : 박종명
최초 작성일 : 2008-06-25 (수요일)
최종 수정일 : 2008-06-25 (수요일)
조회 수 : 3396

Control 클래스

 네임스페이스 : System.Windows.Forms

 어셈블리 : System.Windows.Forms.dll

 

(MSDN 바로가기 : http://msdn2.microsoft.com/ko-kr/library/system.windows.forms.control(VS.80).aspx)

 

윈도우 응용프로그램 개발을 위해 닷넷에서 제공하는 많은 컨트롤들이 이 Control 클래스로부터 상속을 받습니다
앞선 포스트에서 언급 했듯이 윈도우 어플리케이션의 출발점이라고 볼 수 있는 Form 클래스 역시 Control 로부터

상속 받은 컨트롤 입니다.

 

MSDN 에서는 Control 클래스를 다음과 같이 한 문장으로 정의합니다

"시각적으로 표시되는 구성 요소인 컨트롤의 기본 클래스를 정의합니다"

 

아래는 보다 상세한 설명입니다. 이 설명문구 만으로도 Control 클래스의 특징을 알 수 있을것 같습니다

"Control 클래스는 사용자가 볼 수 있도록 정보를 표시하는 클래스에서 필요로 하는 가장 기본적인 기능만 구현합니다. 또한 이 클래스는 키보드와 포인팅 장치를 통한 사용자 입력을 처리합니다. 또한 메시지 라우팅 및 보안을 처리합니다이 클래스는 그리기를 구현하지는 않지만 컨트롤의 범위(위치와 크기)를 정의하며, 창 핸들(hWnd)을 제공합니다"

 

이렇듯 Control 클래스는 윈도우 컨트롤이 공통적으로 가질법한 기본적이고도 많은 기능들을 포함하고 있는 클래스 입니다. 컨트롤이 가져야 할 기본적이고도 필수적인 기능이라 함은 간단하게 말해 컨트롤을 보이고 숨기는 것,컨트롤에 포커스를 얻고 읽는 것, 컨트롤을 클릭하는 것, 컨트롤을 위치정보를 설정하는 것, 컨트롤의 크기에 관련된 사항 등 컨트롤로써 행해야 할 상식적이고도 당연한(?) 기능들을 미리 정의해 놓은 것이라 할 수 있습니다.

 

아래의 그림은 Form 클래스의 속성 중 일부 입니다.


이 속성들은 Control 에서 상속된 속성임을 알 수가 있습니다.

 

Control 클래스의 계층 구조 ≡


 System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Windows.Forms.Control
           
System.ComponentModel.Design.ByteViewer
            System.Windows.Forms.AxHost
            System.Windows.Forms.ButtonBase
            System.Windows.Forms.DataGrid
            System.Windows.Forms.DateTimePicker
            System.Windows.Forms.GroupBox
            System.Windows.Forms.Label
            System.Windows.Forms.ListControl
            System.Windows.Forms.ListView
            System.Windows.Forms.MonthCalendar
            System.Windows.Forms.PictureBox
            System.Windows.Forms.PrintPreviewControl
            System.Windows.Forms.ProgressBar
            System.Windows.Forms.ScrollableControl
            System.Windows.Forms.ScrollBar
            System.Windows.Forms.Splitter
            System.Windows.Forms.StatusBar
            System.Windows.Forms.TabControl
            System.Windows.Forms.TextBoxBase
            System.Windows.Forms.ToolBar
            System.Windows.Forms.TrackBar
            System.Windows.Forms.TreeView

 위의 계층 구조에서 알 수 있듯이 거의 모든 윈도우 컨트롤들이 Control 로부터 상속 받습니다


대표적으로 System.Windows.Forms.ButtonBase (버턴,체크박스,라디오 버턴),
System.Windows.Forms.ScrollableControl(
,패널 등), 
System.Windows.Forms.TextBoxBase(
텍스트박스,리치텍스트박스) 등 친근한 컨트롤들이 Control 클래스로부터

상속 되었습니다.


객체 지향 프로그래밍에서의 상속의 개념이 그대로 녹아 있는 계층 구조입니다.
상속의 첫번째 목적은 공통적인 부분을 추상화 하여 부모 클래스로 정의 하여 재사용성을 증대 함으로써 개발 생산성,
유지보수성의 증가를 꾀하는 것입니다.

 

  Control 클래스 멤버 ≡

아주 많은 속성,메서드,이벤트 들이 있지만 일일이 언급하지는 않겠습니다
(궁금하신 분은 MSDN을 통해 확인해 주세요)

실제 멤버들의 특징과 사용법 등은 각 자식 컨트롤들을 소개하는 자리에서 언급하도록 하겠습니다.

 

≡ 사용자 정의 컨트롤 ≡
닷넷 윈도우 컨트롤의 대부분이 상속받는 이 Control 클래스는 같은 개념으로 프로그래머가 닷넷 기본 컨트롤에는 없는 뭔가 새로운 컨트롤을 만들 때 상속받아 사용하는 클래스입니다.
이미 컨트롤의 많은 기능들이 포함되어 있으므로 프로그래머는 자신이 원하는 특정 기능만을 구현하고 나머지 기능은
Control 클래스를 상속받아 사용을 합니다


 

 참고 ≡

컨트롤 사용에 있어 약간의 성능향상을 꾀한 다면 MSDN 의 다음 참고사항을 숙지 하십시요

" 향상된 성능을 유지하려면 컨트롤의 생성자에 해당 컨트롤의 크기를 설정하지 않아야 합니다.

  더 좋은 방법은 DefaultSize 속성 을 재정의하는 것입니다."

 

 

이름
비밀번호
홈페이지
JU <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요