Export (0) Print
Expand All

GridTableStylesCollection Class

Represents a collection of DataGridTableStyle objects in the DataGrid control.

For a list of all members of this type, see GridTableStylesCollection Members.

System.Object
   System.MarshalByRefObject
      System.Windows.Forms.BaseCollection
         System.Windows.Forms.GridTableStylesCollection

[Visual Basic]
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

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Remarks

The GridTableStylesCollection contains DataGridTableStyle objects that allows the DataGrid control to display a customized grid style for each DataTable in a DataSet.

On the DataGrid control, the TableStyles property returns the GridTableStylesCollection object.

By default, the GridTableStylesCollection does not contain any DataGridTableStyle objects. Instead, the DataGrid displays each table using default settings for color, width, and formatting. All columns of each table are displayed. When a DataGridTableStyle object is added to the collection, the DataGrid uses the MappingName to determine which object supplies the data for the grid. For example, if the data source is a DataSet that contains three DataTable objects, the MappingName must match the TableName of one of the objects. If the MappingName does not match any of the TableName values, the default settings will be used to display data for each table, and the DataGridTableStyle settings will be ignored.

CAUTION   Always create DataGridColumnStyle objects and add them to the GridColumnStylesCollection before adding DataGridTableStyle objects to the GridTableStylesCollection. When you add an empty DataGridTableStyle to the collection, DataGridColumnStyle objects are automatically generated for you. Consequently, an exception will be thrown if you try to add new DataGridColumnStyle objects with duplicate MappingName values to the GridColumnStylesCollection. Alternatively, clear the GridColumnStylesCollection using the Clear method.

Example

[Visual Basic, C#, C++] The following example creates two DataGridTableStyle objects and adds each to the GridTableStylesCollection returned by the TableStyles property of a DataGrid control.

[Visual Basic] 
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] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Windows.Forms

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

Assembly: System.Windows.Forms (in System.Windows.Forms.dll)

See Also

GridTableStylesCollection Members | System.Windows.Forms Namespace | DataGrid | GridColumnStyles

Show:
© 2014 Microsoft