c# 그리드 예제

이전 코드에서는 그리드 테두리, 열 수, 고정 된 행 수를 설정하고 첫 번째 헤더 행을 만들었습니다. 헤더에 대해 ColumnHeader 셀을 사용했습니다. 간단한 주기로 각 열에 특정 형식을 사용하여 다른 셀을 만들었습니다. 셀 클래스는 지정된 유형(이 경우 텍스트 상자 및 DateTimePicker)에 대해 자동으로 적절한 편집기를 만듭니다. 마지막 열의 경우 셀에 직접 확인란을 표시 할 수있는 확인란 셀을 사용했습니다. 양식은 다음 그림의 양식과 같아야 하며 이 예제는 ZIP 파일이 있는 프로젝트 SampleProject에도 있습니다. 이 세 가지 예제는 2개의 행과 2개의 열로 테이블을 만드는 동일한 작업을 모두 수행합니다. 폼에 컨트롤을 삽입 한 후 다음과 같은 양식의 Load 이벤트에서 그리드를 사용하도록 코드를 작성할 수 있습니다. 생성자에서.

SetValue 메서드를 호출 한 후 OnValueChanged 메서드를 호출 하여 이 셀을 업데이트하도록 그리드에 알립니다. 그리드 레이아웃의 공유 크기 기능을 사용하면 여러 그리드에서 열 너비를 동기화할 수 있습니다. 이 기능은 데이터 템플릿 내의 레이아웃 패널로 그리드를 사용하여 다중 열 목록 보기를 실현하려는 경우에 매우 유용합니다. 각 항목에는 자체 그리드가 포함되어 있으므로 열의 너비가 같지 않습니다. 다음은 셀의 주요 시각적 속성입니다 (전체 목록은 그리드의 설명서를 참조하십시오): BackColor, ForeColor, 테두리, 글꼴, 텍스트 정렬, 워드 랩 …, DataGrid에 데이터를 표시하려면 DataGrid 개체를 정의해야합니다. 물론 DataGrid에서 데이터를 채우는 방법에는 여러 가지가 있습니다. 예를 들어 편집기 의 형식을 더 잘 제어해야 하거나 특별한 요구 사항이 있는 경우 편집기 클래스를 수동으로 만들 수 있습니다. 예를 들어 이 경우 수동으로 클래스 EditorTextBox를 만든 다음 MaxLength 및 CharacterCasing 속성을 호출합니다. 확장기를 사용하면 상위 테이블에서 하위 테이블로 이동할 수 있습니다.

DataGrid에서 노드를 클릭하면 하위 테이블이 표시됩니다. 뒤로 단추를 클릭하면 원래 상위 테이블이 표시됩니다. 이러한 방식으로 표는 테이블 간의 계층 적 관계를 표시합니다. 다음 예제에서는 배열의 값을 읽고 쓰는 가상 그리드를 만듭니다. 먼저 컨트롤 GridVirtual을 양식에 삽입 한 다음 가상 클래스를 정의하는이 코드를 작성합니다 :이 컨트롤의 성능을 최적화하려면 많은 셀을 시각화하고 항상 모델을 공유하려고 할 때 GridVirtual 컨트롤을 사용합니다 ( DataModel , VisualModel, behaviorModel) 더 많은 가능한 셀 사이. 특히 스크롤 할 때 드로잉 코드를 계속 최적화 할 수 있더라도 그리드의 성능은 매우 좋습니다. 그리드의 성능에 대한 자세한 내용은 프로젝트 SampleProject를 참조할 수 있습니다. 마우스 및 키보드 이벤트는 BehaviorModel과 함께 사용하거나 그리드에 직접 연결할 수 있습니다. 모든 이벤트가 먼저 패널에 발사된 다음 GridVirtual 및 그리드 컨트롤로 자동으로 이동됩니다. 이 코드를 작성할 수 있는 이러한 이벤트를 사용하려면 다음 장에서 훌륭한 Grid 패널을 소개하고 이를 사용하는 방법에 대한 몇 가지 기본 예제를 보여 주어 두 가지 예제를 보여 주시겠습니다. 이 장에서 우리는 몇 가지 더 고급 레이아웃을 할 것입니다., 이것은 그리드 정말 빛나는 곳.

우선, 진정한 테이블 레이아웃을 위해 더 많은 열과 일부 행을 던져 보겠습니다: DataModel은 열의 모든 셀에 대해 동일한 DataModel을 사용할 수 있습니다. 일부 속성은 DataModel 수준으로 정의되고 다른 속성은 편집기 제어 수준으로 정의되며, 이 경우 CharacterCasing 속성은 TextBox 제어 수준으로 정의됩니다.