DataGridTableStyle 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
런타임에 DataGrid 컨트롤로 그린 테이블을 나타냅니다.
public ref class DataGridTableStyle : System::ComponentModel::Component, System::Windows::Forms::IDataGridEditingService
public class DataGridTableStyle : System.ComponentModel.Component, System.Windows.Forms.IDataGridEditingService
type DataGridTableStyle = class
inherit Component
interface IDataGridEditingService
Public Class DataGridTableStyle
Inherits Component
Implements IDataGridEditingService
- 상속
- 구현
예제
다음 코드 예제에서는 두 개의 DataGridTableStyle 인스턴스를 만들고 각 개체 TableNameDataTable 의 를 MappingName 의 로 DataSet설정합니다. 그런 다음, 각 DataGridTableStyle의 에 개체를 GridColumnStylesCollection 추가 DataGridColumnStyle 합니다. 실행되는 예제는 예제를 참조하세요 System.Windows.Forms.DataGrid .
void AddCustomDataTableStyle()
{
/* Create a new DataGridTableStyle and set
its MappingName to the TableName of a DataTable. */
DataGridTableStyle^ ts1 = gcnew DataGridTableStyle;
ts1->MappingName = "Customers";
/* Add a GridColumnStyle and set its MappingName
to the name of a DataColumn in the DataTable.
Set the HeaderText and Width properties. */
DataGridColumnStyle^ boolCol = gcnew DataGridBoolColumn;
boolCol->MappingName = "Current";
boolCol->HeaderText = "IsCurrent Customer";
boolCol->Width = 150;
ts1->GridColumnStyles->Add( boolCol );
// Add a second column style.
DataGridColumnStyle^ TextCol = gcnew DataGridTextBoxColumn;
TextCol->MappingName = "custName";
TextCol->HeaderText = "Customer Name";
TextCol->Width = 250;
ts1->GridColumnStyles->Add( TextCol );
// Create the second table style with columns.
DataGridTableStyle^ ts2 = gcnew DataGridTableStyle;
ts2->MappingName = "Orders";
// Change the colors.
ts2->ForeColor = Color::Yellow;
ts2->AlternatingBackColor = Color::Blue;
ts2->BackColor = Color::Blue;
// Create new DataGridColumnStyle objects.
DataGridColumnStyle^ cOrderDate = gcnew DataGridTextBoxColumn;
cOrderDate->MappingName = "OrderDate";
cOrderDate->HeaderText = "Order Date";
cOrderDate->Width = 100;
ts2->GridColumnStyles->Add( cOrderDate );
PropertyDescriptorCollection^ pcol = this->BindingContext[ myDataSet,"Customers.custToOrders" ]->GetItemProperties();
DataGridColumnStyle^ csOrderAmount = gcnew DataGridTextBoxColumn( pcol[ "OrderAmount" ],"c",true );
csOrderAmount->MappingName = "OrderAmount";
csOrderAmount->HeaderText = "Total";
csOrderAmount->Width = 100;
ts2->GridColumnStyles->Add( csOrderAmount );
// Add the DataGridTableStyle objects to the collection.
myDataGrid->TableStyles->Add( ts1 );
myDataGrid->TableStyles->Add( ts2 );
}
private void AddCustomDataTableStyle()
{
/* Create a new DataGridTableStyle and set
its MappingName to the TableName of a DataTable. */
DataGridTableStyle ts1 = new DataGridTableStyle();
ts1.MappingName = "Customers";
/* Add a GridColumnStyle and set its MappingName
to the name of a DataColumn in the DataTable.
Set the HeaderText and Width properties. */
DataGridColumnStyle boolCol = new DataGridBoolColumn();
boolCol.MappingName = "Current";
boolCol.HeaderText = "IsCurrent Customer";
boolCol.Width = 150;
ts1.GridColumnStyles.Add(boolCol);
// Add a second column style.
DataGridColumnStyle TextCol = new DataGridTextBoxColumn();
TextCol.MappingName = "custName";
TextCol.HeaderText = "Customer Name";
TextCol.Width = 250;
ts1.GridColumnStyles.Add(TextCol);
// Create the second table style with columns.
DataGridTableStyle ts2 = new DataGridTableStyle();
ts2.MappingName = "Orders";
// Change the colors.
ts2.ForeColor = Color.Yellow;
ts2.AlternatingBackColor = Color.Blue;
ts2.BackColor = Color.Blue;
// Create new DataGridColumnStyle objects.
DataGridColumnStyle cOrderDate =
new DataGridTextBoxColumn();
cOrderDate.MappingName = "OrderDate";
cOrderDate.HeaderText = "Order Date";
cOrderDate.Width = 100;
ts2.GridColumnStyles.Add(cOrderDate);
PropertyDescriptorCollection pcol = this.BindingContext
[myDataSet, "Customers.custToOrders"].GetItemProperties();
DataGridColumnStyle csOrderAmount =
new DataGridTextBoxColumn(pcol["OrderAmount"], "c", true);
csOrderAmount.MappingName = "OrderAmount";
csOrderAmount.HeaderText = "Total";
csOrderAmount.Width = 100;
ts2.GridColumnStyles.Add(csOrderAmount);
// Add the DataGridTableStyle objects to the collection.
myDataGrid.TableStyles.Add(ts1);
myDataGrid.TableStyles.Add(ts2);
}
Private Sub AddCustomDataTableStyle()
' Create a new DataGridTableStyle and set
' its MappingName to the TableName of a DataTable.
Dim ts1 As New DataGridTableStyle()
ts1.MappingName = "Customers"
' Add a GridColumnStyle and set its MappingName
' to the name of a DataColumn in the DataTable.
' Set the HeaderText and Width properties.
Dim boolCol As New DataGridBoolColumn()
boolCol.MappingName = "Current"
boolCol.HeaderText = "IsCurrent Customer"
boolCol.Width = 150
ts1.GridColumnStyles.Add(boolCol)
' Add a second column style.
Dim TextCol As New DataGridTextBoxColumn()
TextCol.MappingName = "custName"
TextCol.HeaderText = "Customer Name"
TextCol.Width = 250
ts1.GridColumnStyles.Add(TextCol)
' Create the second table style with columns.
Dim ts2 As New DataGridTableStyle()
ts2.MappingName = "Orders"
' Change the colors.
ts2.ForeColor = Color.Yellow
ts2.AlternatingBackColor = Color.Blue
ts2.BackColor = Color.Blue
' Create new DataGridColumnStyle objects.
Dim cOrderDate As New DataGridTextBoxColumn()
cOrderDate.MappingName = "OrderDate"
cOrderDate.HeaderText = "Order Date"
cOrderDate.Width = 100
ts2.GridColumnStyles.Add(cOrderDate)
Dim pcol As PropertyDescriptorCollection = Me.BindingContext(myDataSet, "Customers.custToOrders").GetItemProperties()
Dim csOrderAmount As New DataGridTextBoxColumn(pcol("OrderAmount"), "c", True)
csOrderAmount.MappingName = "OrderAmount"
csOrderAmount.HeaderText = "Total"
csOrderAmount.Width = 100
ts2.GridColumnStyles.Add(csOrderAmount)
' Add the DataGridTableStyle objects to the collection.
myDataGrid.TableStyles.Add(ts1)
myDataGrid.TableStyles.Add(ts2)
End Sub
설명
컨트롤은 System.Windows.Forms.DataGrid 그리드 형식으로 데이터를 표시합니다. 는 DataGridTableStyle 그린 눈금만 나타내는 클래스입니다. 이 그리드는 그리드에 DataTable 사용할 수 있는 데이터 원본인 클래스와 혼동해서는 안 됩니다. 대신 은 DataGridTableStyle 컨트롤에 그려지는 그리드를 엄격하게 나타냅니다. 따라서 를 DataGridTableStyle 통해 각 DataTable에 대한 그리드의 모양을 제어할 수 있습니다. 특정 의 데이터를 표시할 때 사용되는 를 지정 DataGridTableStyle 하려면 를 의 DataTable로 TableName 설정합니다MappingName.DataTable
GridTableStylesCollection 통해 검색 된 TableStyles 속성에 사용 되는 모든 DataGridTableStyle 개체를 포함 합니다 컨트롤입니다System.Windows.Forms.DataGrid. 컬렉션에는 필요한 만큼 DataGridTableStyle 의 개체가 포함될 수 있지만 각 개체의 은 MappingName 고유해야 합니다. 런타임에 사용자의 기본 설정에 따라 동일한 데이터에 대해 다른 DataGridTableStyle 를 대체할 수 있습니다. 가상 하드 디스크 파일에 대한 중요 정보를 제공하려면
을 GridTableStylesCollection 개체로 DataGridTableStyle 채웁다. DataGridTableStyle 의 속성 값이 GridTableStylesCollectionMappingName 개체의 TableName 속성 DataTable 과 DataTable 같은 에 있으면 이 DataGridTableStyle와 함께 표시됩니다. 일치하는 MappingNameDataTable 가 없는 DataGridTableStyle 경우 는 데이터 그리드 테이블의 기본 스타일로 표시됩니다.
다른 그리드 스타일이 필요한 경우 속성을 사용하여
Item
적절한 DataGridTableStyle 를 선택하고(속성에 Item[] 전달TableName) 반환된 개체의 를 새 값으로 설정합니다MappingName.사용 된 Item[] 속성을 원하는 DataGridTableStyle선택 하 고 설정 MappingName 합니다 TableName 의 합니다 DataTable.
주의
개체를 에 추가하기 전에 항상 개체GridTableStylesCollection를 GridColumnStylesCollection 만들고 DataGridColumnStyle 에 추가 DataGridTableStyle 합니다. 컬렉션 DataGridColumnStyle 에 유효한 MappingName 값이 있는 빈 DataGridTableStyle 을 추가하면 개체가 자동으로 생성됩니다. 따라서 중복 MappingName 값이 있는 새 DataGridColumnStyle 개체를 에 추가하려고 하면 예외가 GridColumnStylesCollectionthrow됩니다.
현재 표시되는 를 DataGridTableStyle 확인하려면 의 System.Windows.Forms.DataGrid 및 DataMember 속성을 사용하여 DataSource 를 반환합니다CurrencyManager. 데이터 원본이 인터페이스를 구현하는 ITypedList 경우 메서드를 GetListName 사용하여 현재 테이블의 를 MappingName 반환할 수 있습니다. 아래 C# 코드에 나와 있습니다.
private void PrintCurrentListName(DataGrid myDataGrid){
CurrencyManager myCM = (CurrencyManager)
BindingContext[myDataGrid.DataSource, myDataGrid.DataMember];
IList myList = myCM.List;
ITypedList thisList = (ITypedList) myList;
Console.WriteLine(thisList.GetListName(null));
}
에 DataSet 개체를 DataTable 통해 DataRelation 관련된 개체가 포함되어 있고 현재 표시된 DataTable 가 자식 테이블 DataMember 인 경우 는 TableName.RelationName 형식의 문자열을 반환합니다(가장 간단한 경우).
DataTable 가 계층 구조에서 더 아래로 내려가면 문자열은 부모 테이블의 이름과 테이블 수준에 도달하는 데 필요한 RelationName 값으로 구성됩니다. 예를 들어 , 및 라는 Regions
Customers
계층적 관계에 있는 세 DataTable 개의 개체와 Orders
및 CustomersToOrders
DataMember 라는 RegionsToCustomers
두 DataRelation 개의 개체가 "Regions.RegionsToCustomers.CustomersToOrders"를 반환합니다. 그러나 는 MappingName "Orders"가 됩니다.
개체의 컬렉션은 의 DataGridTableStyleSystem.Windows.Forms.DataGrid속성을 통해 TableStyles 반환됩니다.
가 DataGridTableStyle 표시되면 의 설정 DataGridTableStyle 이 컨트롤에 대한 설정을 재정의합니다 System.Windows.Forms.DataGrid . 값이 특정 DataGridTableStyle 속성 System.Windows.Forms.DataGrid 에 대해 설정되지 않은 경우 컨트롤의 값이 대신 사용됩니다. 다음 목록에는 컨트롤 속성을 재정 System.Windows.Forms.DataGrid 의 DataGridColumnStyle 하도록 설정할 수 있는 속성이 나와 있습니다.
를 DataGrid 강력한 형식의 개체 배열에 바인딩하려면 개체 형식에 공용 속성이 포함되어야 합니다. 배열을 표시하는 을 DataGridTableStyle 만들려면 속성을 typename
로 설정합니다DataGridTableStyle.MappingName. 여기서 typename
은 개체 형식의 이름으로 바뀝니다. 또한 속성은 MappingName 대/소문자를 구분합니다. 형식 이름은 정확히 일치해야 합니다. 예제는 MappingName 속성을 참조하세요.
를 에 바인딩 DataGrid 할 ArrayList수도 있습니다. 의 ArrayList 기능은 여러 형식의 개체를 포함할 수 있지만 DataGrid 목록의 모든 항목이 첫 번째 항목과 동일한 형식인 경우에만 이 목록에 바인딩할 수 있다는 것입니다. 즉, 모든 개체는 동일한 형식이거나 목록의 첫 번째 항목과 동일한 클래스에서 상속되어야 합니다. 예를 들어 목록의 첫 번째 항목이 인 경우 두 번째 항목은 Control(에서 Control상속되는)일 수 TextBox 있습니다. 반면에 첫 번째 항목이 이면 두 번째 개체는 TextBox가 될 Control수 없습니다. 또한 에 ArrayList 바인딩된 경우 에 항목이 있어야 하며 의 개체에는 공용 속성이 DataGridTableStyle 포함되어야 합니다. 비어 ArrayList 있는 경우 빈 그리드가 생성됩니다. 에 ArrayList바인딩할 때 의 를 MappingNameDataGridTableStyle "ArrayList"(형식 이름)로 설정합니다.
생성자
DataGridTableStyle() |
DataGridTableStyle 클래스의 새 인스턴스를 초기화합니다. |
DataGridTableStyle(Boolean) |
지정된 값을 사용하여 DataGridTableStyle 클래스의 새 인스턴스를 초기화함으로써 표 테이블이 기본 스타일인지 여부를 확인합니다. |
DataGridTableStyle(CurrencyManager) |
지정된 DataGridTableStyle를 사용하여 CurrencyManager 클래스의 새 인스턴스를 초기화합니다. |
필드
DefaultTableStyle |
기본 테이블 스타일을 가져옵니다. |
속성
AllowSorting |
이 DataGridTableStyle을 사용할 때 모눈 테이블 정렬이 허용되는지 여부를 나타냅니다. |
AlternatingBackColor |
표에 있는 홀수 번호 행의 배경색을 가져오거나 설정합니다. |
BackColor |
표에 있는 짝수 번호 행의 배경색을 가져오거나 설정합니다. |
CanRaiseEvents |
구성 요소가 이벤트를 발생시킬 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
ColumnHeadersVisible |
열 머리글이 표시되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
Container |
IContainer을 포함하는 Component를 가져옵니다. (다음에서 상속됨 Component) |
DataGrid |
그려진 테이블의 DataGrid 컨트롤을 가져오거나 설정합니다. |
DesignMode |
Component가 현재 디자인 모드인지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
Events |
이 Component에 연결된 이벤트 처리기의 목록을 가져옵니다. (다음에서 상속됨 Component) |
ForeColor |
모눈 테이블의 전경색을 가져오거나 설정합니다. |
GridColumnStyles |
이 테이블에 그려진 열의 컬렉션을 가져옵니다. |
GridLineColor |
모눈선의 색을 가져오거나 설정합니다. |
GridLineStyle |
모눈선의 스타일을 가져오거나 설정합니다. |
HeaderBackColor |
머리글의 배경색을 가져오거나 설정합니다. |
HeaderFont |
머리글 캡션에 사용되는 글꼴을 가져오거나 설정합니다. |
HeaderForeColor |
머리글의 전경색을 가져오거나 설정합니다. |
LinkColor |
링크 텍스트의 색을 가져오거나 설정합니다. |
LinkHoverColor |
마우스로 링크 텍스트를 가리킬 때 표시되는 색을 가져오거나 설정합니다. |
MappingName |
이 테이블을 특정 데이터 소스에 매핑하는 데 사용되는 이름을 가져오거나 설정합니다. |
PreferredColumnWidth |
새 모눈이 표시될 때 열을 만드는 데 사용되는 너비를 가져오거나 설정합니다. |
PreferredRowHeight |
새 모눈이 표시될 때 행을 만드는 데 사용되는 높이를 가져오거나 설정합니다. |
ReadOnly |
열을 편집할 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다. |
RowHeadersVisible |
행 머리글이 표시되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
RowHeaderWidth |
행 머리글의 너비를 가져오거나 설정합니다. |
SelectionBackColor |
선택된 셀의 배경색을 가져오거나 설정합니다. |
SelectionForeColor |
선택된 셀의 전경색을 가져오거나 설정합니다. |
Site |
Component의 ISite를 가져오거나 설정합니다. (다음에서 상속됨 Component) |
메서드
이벤트
적용 대상
추가 정보
.NET