次の方法で共有


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) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

GridTableStylesCollectionDataGridTableStyle オブジェクトを格納します。 DataGrid コントロールは、このオブジェクトを使用して DataSet 内の各 DataTable にカスタマイズされたグリッド スタイルを表示できます。

DataGrid コントロールでは、 TableStyles プロパティは GridTableStylesCollection オブジェクトを返します。

既定では、 GridTableStylesCollection には DataGridTableStyle オブジェクトが格納されていません。代わりに、 DataGrid は、色、幅、および書式指定について既定の設定値を使用して各テーブルを表示します。また、各テーブルのすべての列が表示されます。 DataGridTableStyle オブジェクトがコレクションに追加されると、 DataGridMappingName を使用して、グリッドのデータを提供するオブジェクトを決定します。たとえば、データ ソースが 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