GridTableStylesCollection クラス
DataGrid コントロール内の DataGridTableStyle オブジェクトのコレクションを表します。
この型のすべてのメンバの一覧については、GridTableStylesCollection メンバ を参照してください。
System.Object
System.MarshalByRefObject
System.Windows.Forms.BaseCollection
System.Windows.Forms.GridTableStylesCollection
Public Class GridTableStylesCollection
Inherits BaseCollection
Implements IList
[C#]
public class GridTableStylesCollection : BaseCollection, IList
[C++]
public __gc class GridTableStylesCollection : public
BaseCollection, IList
[JScript]
public class GridTableStylesCollection extends BaseCollection
implements IList
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
GridTableStylesCollection は DataGridTableStyle オブジェクトを格納します。 DataGrid コントロールは、このオブジェクトを使用して DataSet 内の各 DataTable にカスタマイズされたグリッド スタイルを表示できます。
DataGrid コントロールでは、 TableStyles プロパティは GridTableStylesCollection オブジェクトを返します。
既定では、 GridTableStylesCollection には DataGridTableStyle オブジェクトが格納されていません。代わりに、 DataGrid は、色、幅、および書式指定について既定の設定値を使用して各テーブルを表示します。また、各テーブルのすべての列が表示されます。 DataGridTableStyle オブジェクトがコレクションに追加されると、 DataGrid は MappingName を使用して、グリッドのデータを提供するオブジェクトを決定します。たとえば、データ ソースが 3 つの DataTable オブジェクトを格納する DataSet の場合、 MappingName は、それらのオブジェクトのいずれかの TableName と一致する必要があります。 MappingName がいずれの TableName 値とも一致しない場合は、既定の設定値を使用して各テーブルのデータが表示され、 DataGridTableStyle の設定値は無視されます。
注意 必ず DataGridColumnStyle オブジェクトを作成して GridColumnStylesCollection に追加してから、 DataGridTableStyle オブジェクトを GridTableStylesCollection に追加します。空の DataGridTableStyle をコレクションに追加すると、自動的に DataGridColumnStyle オブジェクトが生成されます。そのため、 MappingName 値が重複する新しい DataGridColumnStyle オブジェクトを GridColumnStylesCollection に追加しようとすると、例外がスローされます。または、 Clear メソッドを使用して、 GridColumnStylesCollection を空にします。
使用例
[Visual Basic, C#, C++] 2 つの DataGridTableStyle オブジェクトを作成し、各オブジェクトを DataGrid コントロールの TableStyles プロパティから返された GridTableStylesCollection に追加する例を次に示します。
Private Sub AddCustomDataTableStyle()
Dim ts1 As New DataGridTableStyle()
ts1.MappingName = "Customers"
' Set other properties.
ts1.AlternatingBackColor = Color.LightGray
' 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"
' Set other properties.
ts2.AlternatingBackColor = Color.LightBlue
' Create new ColumnStyle objects.
Dim cOrderDate As New DataGridTextBoxColumn()
cOrderDate.MappingName = "OrderDate"
cOrderDate.HeaderText = "Order Date"
cOrderDate.Width = 100
ts2.GridColumnStyles.Add(cOrderDate)
' Use a PropertyDescriptor to create a formatted
' column. First get the PropertyDescriptorCollection
' for the data source and data member.
Dim pcol As PropertyDescriptorCollection = _
Me.BindingContext(myDataSet, "Customers.custToOrders"). _
GetItemProperties()
' Create a formatted column using a PropertyDescriptor.
' The formatting character "c" specifies a currency format. */
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 instances to
' the GridTableStylesCollection.
myDataGrid.TableStyles.Add(ts1)
myDataGrid.TableStyles.Add(ts2)
End Sub 'AddCustomDataTableStyle
[C#]
private void AddCustomDataTableStyle(){
DataGridTableStyle ts1 = new DataGridTableStyle();
ts1.MappingName = "Customers";
// Set other properties.
ts1.AlternatingBackColor = Color.LightGray;
/* 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";
// Set other properties.
ts2.AlternatingBackColor = Color.LightBlue;
// Create new ColumnStyle objects.
DataGridColumnStyle cOrderDate =
new DataGridTextBoxColumn();
cOrderDate.MappingName = "OrderDate";
cOrderDate.HeaderText = "Order Date";
cOrderDate.Width = 100;
ts2.GridColumnStyles.Add(cOrderDate);
/*Use a PropertyDescriptor to create a formatted
column. First get the PropertyDescriptorCollection
for the data source and data member. */
PropertyDescriptorCollection pcol = this.BindingContext
[myDataSet, "Customers.custToOrders"].GetItemProperties();
/* Create a formatted column using a PropertyDescriptor.
The formatting character "c" specifies a currency format. */
DataGridColumnStyle csOrderAmount =
new DataGridTextBoxColumn(pcol["OrderAmount"], "c", true);
csOrderAmount.MappingName = "OrderAmount";
csOrderAmount.HeaderText = "Total";
csOrderAmount.Width = 100;
ts2.GridColumnStyles.Add(csOrderAmount);
/* Add the DataGridTableStyle instances to
the GridTableStylesCollection. */
myDataGrid.TableStyles.Add(ts1);
myDataGrid.TableStyles.Add(ts2);
}
[C++]
private:
void AddCustomDataTableStyle() {
DataGridTableStyle* ts1 = new DataGridTableStyle();
ts1->MappingName = S"Customers";
// Set other properties.
ts1->AlternatingBackColor = Color::LightGray;
/* 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 = S"Current";
boolCol->HeaderText = S"IsCurrent Customer";
boolCol->Width = 150;
ts1->GridColumnStyles->Add(boolCol);
// Add a second column style.
DataGridColumnStyle* TextCol = new DataGridTextBoxColumn();
TextCol->MappingName = S"custName";
TextCol->HeaderText = S"Customer Name";
TextCol->Width = 250;
ts1->GridColumnStyles->Add(TextCol);
// Create the second table style with columns.
DataGridTableStyle* ts2 = new DataGridTableStyle();
ts2->MappingName = S"Orders";
// Set other properties.
ts2->AlternatingBackColor = Color::LightBlue;
// Create new ColumnStyle objects.
DataGridColumnStyle* cOrderDate = new DataGridTextBoxColumn();
cOrderDate->MappingName = S"OrderDate";
cOrderDate->HeaderText = S"Order Date";
cOrderDate->Width = 100;
ts2->GridColumnStyles->Add(cOrderDate);
/*Use a PropertyDescriptor to create a formatted
column. First get the PropertyDescriptorCollection
for the data source and data member. */
PropertyDescriptorCollection* pcol = this->BindingContext->get_Item
(myDataSet, S"Customers::custToOrders")->GetItemProperties();
/* Create a formatted column using a PropertyDescriptor.
The formatting character S"c" specifies a currency format. */
DataGridColumnStyle* csOrderAmount =
new DataGridTextBoxColumn(pcol->Item[S"OrderAmount"], S"c", true);
csOrderAmount->MappingName = S"OrderAmount";
csOrderAmount->HeaderText = S"Total";
csOrderAmount->Width = 100;
ts2->GridColumnStyles->Add(csOrderAmount);
/* Add the DataGridTableStyle instances to
the GridTableStylesCollection. */
myDataGrid->TableStyles->Add(ts1);
myDataGrid->TableStyles->Add(ts2);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Windows.Forms
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)
参照
GridTableStylesCollection メンバ | System.Windows.Forms 名前空間 | DataGrid | GridColumnStyles