다음을 통해 공유


DataGridView 컨트롤 아키텍처(Windows Forms)

업데이트: 2007년 11월

DataGridView 컨트롤과 이 컨트롤의 관련 클래스는 표 형식 데이터를 표시하고 편집하기 위한 융통성 있고 확장 가능한 시스템으로 디자인되었습니다. 이러한 클래스는 모두 System.Windows.Forms 네임스페이스에 포함되며 "DataGridView"라는 접두사가 클래스의 이름에 포함됩니다.

아키텍처 요소

기본 DataGridView 동반 클래스는 DataGridViewElement에서 파생됩니다. 다음 개체 모델은 DataGridViewElement 상속 계층 구조를 보여 줍니다.

DataGridViewElement 개체 모델

DataGridViewElement 개체 모델

DataGridViewElement 클래스는 부모 DataGridView 컨트롤에 대한 참조를 제공하며, DataGridViewElementStates 열거형의 값 조합을 나타내는 값이 포함된 State 속성을 갖습니다.

다음 단원에서는 DataGridView 동반 클래스에 대해 자세히 설명합니다.

DataGridViewElementStates

DataGridViewElementStates 열거형은 다음과 같은 값을 포함합니다.

이 열거형의 값은 비트 논리 연산자와 결합될 수 있기 때문에 State 속성은 여러 상태를 한 번에 표시할 수 있습니다. 예를 들어, DataGridViewElement는 동시에 Frozen, SelectedVisible이 될 수 있습니다.

셀 및 밴드

DataGridView 컨트롤은 셀과 밴드라는 기본적인 두 종류의 개체로 구성됩니다. 모든 셀은 DataGridViewCell 기본 클래스에서 파생됩니다. DataGridViewColumnDataGridViewRow라는 두 종류의 밴드는 모두 DataGridViewBand 기본 클래스에서 파생됩니다.

DataGridView 컨트롤은 여러 클래스와 상호 운용되지만, 그 중에서도 DataGridViewCell, DataGridViewColumnDataGridViewRow와 함께 가장 많이 사용됩니다.

DataGridViewCell

셀은 DataGridView의 상호 작용에 사용되는 기본 단위입니다. 셀을 중심으로 표시 작업이 수행되고 주로 셀을 통해 데이터 입력이 수행됩니다. DataGridViewRow 클래스의 Cells 컬렉션을 사용하여 셀에 액세스할 수 있으며, DataGridView 컨트롤의 SelectedCells 컬렉션을 사용하여 선택한 셀에 액세스할 수 있습니다. 다음 개체 모델은 이 사용 방법을 보여 주고 DataGridViewCell 상속 계층 구조를 보여 줍니다.

DataGridViewCell 개체 모델

DataGridViewCell 개체 모델

DataGridViewCell 형식은 모든 셀 형식이 파생되는 추상 기본 클래스입니다. DataGridViewCell과 그 파생 형식은 Windows Forms 컨트롤이 아니지만 그 중 일부는 Windows Forms 컨트롤을 호스팅합니다. 셀에서 지원되는 모든 편집 기능은 일반적으로 호스팅된 컨트롤에서 처리됩니다.

DataGridViewCell 개체는 고유 모양 및 그리기 기능을 Windows Forms 컨트롤과 똑같은 방법으로 제어하지 않습니다. 대신 DataGridView가 해당 DataGridViewCell 개체의 모양을 처리합니다. DataGridView 컨트롤의 속성 및 이벤트와의 상호 작용을 통해 셀의 모양과 동작에 상당한 영향을 줄 수 있습니다. DataGridView 컨트롤 기능 이상의 특별한 사용자 지정 작업이 필요한 경우에는 DataGridViewCell 또는 그 자식 클래스에서 파생되는 고유 클래스를 구현할 수 있습니다.

다음 목록에서는 DataGridViewCell에서 파생된 클래스를 보여 줍니다.

DataGridViewColumn

DataGridView 컨트롤에 연결된 데이터 저장소의 스키마는 DataGridView 컨트롤의 열에 표시됩니다. Columns 컬렉션을 사용하여 DataGridView 컨트롤의 열에 액세스할 수 있습니다. SelectedColumns 컬렉션을 사용하여 선택한 열에 액세스할 수 있습니다. 다음 개체 모델은 이 사용 방법을 보여 주고 DataGridViewColumn 상속 계층 구조를 보여 줍니다.

DataGridViewColumn 개체 모델

DataGridViewColumn 개체 모델

주요 셀 형식 중 일부는 해당 열 형식을 갖습니다. 이러한 형식은 DataGridViewColumn 기본 클래스에서 파생됩니다.

다음 목록에서는 DataGridViewColumn에서 파생된 클래스를 보여 줍니다.

DataGridView 편집 컨트롤

고급 편집 기능을 지원하는 셀은 일반적으로 Windows Forms 컨트롤에서 파생되는 호스팅된 컨트롤을 사용합니다. 또한 이러한 컨트롤은 IDataGridViewEditingControl 인터페이스를 구현합니다. 다음 개체 모델은 이러한 컨트롤의 사용 방법을 보여 줍니다.

DataGridView 편집 컨트롤 개체 모델

DataGridView 편집 컨트롤 개체 모델

다음과 같은 편집 컨트롤이 DataGridView 컨트롤과 함께 제공됩니다.

고유한 편집 컨트롤을 만드는 방법에 대한 자세한 내용은 방법: Windows Forms DataGridView 셀에서 컨트롤 호스팅을 참조하십시오.

다음 표에서는 셀 형식, 열 형식 및 편집 컨트롤 간의 관계를 보여 줍니다.

셀 형식

호스팅되는 컨트롤

열 형식

DataGridViewButtonCell

n/a

DataGridViewButtonColumn

DataGridViewCheckBoxCell

n/a

DataGridViewCheckBoxColumn

DataGridViewComboBoxCell

DataGridViewComboBoxEditingControl

DataGridViewComboBoxColumn

DataGridViewImageCell

n/a

DataGridViewImageColumn

DataGridViewLinkCell

n/a

DataGridViewLinkColumn

DataGridViewTextBoxCell

DataGridViewTextBoxEditingControl

DataGridViewTextBoxColumn

DataGridViewRow

DataGridViewRow 클래스는 DataGridView 컨트롤이 연결된 데이터 저장소에 있는 레코드의 데이터 필드를 표시합니다. Rows 컬렉션을 사용하여 DataGridView 컨트롤의 행에 액세스할 수 있습니다. SelectedRows 컬렉션을 사용하여 선택한 행에 액세스할 수 있습니다. 다음 개체 모델은 이 사용 방법을 보여 주고 DataGridViewRow 상속 계층 구조를 보여 줍니다.

DataGridViewRow 개체 모델

DataGridViewRow 개체 모델

일반적으로 필요한 경우는 아니지만 DataGridViewRow 클래스에서 고유한 형식을 파생시킬 수 있습니다. DataGridView 컨트롤에는 해당 DataGridViewRow 개체의 동작을 사용자 지정하는 데 사용되는 여러 가지 행 관련 이벤트와 속성이 있습니다.

DataGridView 컨트롤의 AllowUserToAddRows 속성을 활성화하면 새 행을 추가할 수 있는 특수 행이 마지막 행으로 표시됩니다. 이 행은 Rows 컬렉션의 일부이지만 특수 기능을 가지므로 주의가 필요합니다. 자세한 내용은 Windows Forms DataGridView 컨트롤에서 새 레코드에 행 사용을 참조하십시오.

참고 항목

개념

Windows Forms DataGridView 컨트롤에서 새 레코드에 행 사용

참조

DataGridView 컨트롤 개요(Windows Forms)

기타 리소스

Windows Forms DataGridView 컨트롤 사용자 지정