Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

GridTableStylesCollection Class

Represents a collection of DataGridTableStyle objects in the DataGrid control.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public class GridTableStylesCollection : BaseCollection, IList, ICollection, IEnumerable
public class GridTableStylesCollection extends BaseCollection implements IList, ICollection, 
	IEnumerable
public class GridTableStylesCollection extends BaseCollection implements IList, ICollection, 
	IEnumerable
Not applicable.

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.

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 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 noteCaution:

Always create DataGridColumnStyle objects and add them to the GridColumnStylesCollection before adding DataGridTableStyle objects to the GridTableStylesCollection. When you add an empty DataGridTableStyle with a valid MappingName value 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.

The following code example creates two DataGridTableStyle objects and adds each to the GridTableStylesCollection returned by the TableStyles property of a DataGrid control.

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. */
   System.ComponentModel.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);
}

private void AddCustomDataTableStyle()
{
    DataGridTableStyle ts1 = new DataGridTableStyle();
    ts1.set_MappingName("Customers");

    // Set other properties.
    ts1.set_AlternatingBackColor(Color.get_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.set_MappingName("Current");
    boolCol.set_HeaderText("IsCurrent Customer");
    boolCol.set_Width(150);
    ts1.get_GridColumnStyles().Add(boolCol);

    // Add a second column style.
    DataGridColumnStyle TextCol = new DataGridTextBoxColumn();

    TextCol.set_MappingName("custName");
    TextCol.set_HeaderText("Customer Name");
    TextCol.set_Width(250);
    ts1.get_GridColumnStyles().Add(TextCol);

    // Create the second table style with columns.
    DataGridTableStyle ts2 = new DataGridTableStyle();
    ts2.set_MappingName("Orders");

    // Set other properties.
    ts2.set_AlternatingBackColor(Color.get_LightBlue());

    // Create new ColumnStyle objects.
    DataGridColumnStyle cOrderDate = new DataGridTextBoxColumn();

    cOrderDate.set_MappingName("OrderDate");
    cOrderDate.set_HeaderText("Order Date");
    cOrderDate.set_Width(100);
    ts2.get_GridColumnStyles().Add(cOrderDate);

    /*  Use a PropertyDescriptor to create a formatted column. First get the 
        the PropertyDescriptorCollection for the data source and data member. 
    */
    PropertyDescriptorCollection pcol = this.get_BindingContext().
        get_Item(myDataSet, "Customers.custToOrders").GetItemProperties();

    /*  Create a formatted column using a PropertyDescriptor.
        The formatting character "c" specifies a currency format.
     */
    DataGridColumnStyle csOrderAmount = new DataGridTextBoxColumn(pcol.
        get_Item("OrderAmount"), "c", true);

    csOrderAmount.set_MappingName("OrderAmount");
    csOrderAmount.set_HeaderText("Total");
    csOrderAmount.set_Width(100);
    ts2.get_GridColumnStyles().Add(csOrderAmount);

    /*  Add the DataGridTableStyle instances to 
        the GridTableStylesCollection. 
     */
    myDataGrid.get_TableStyles().Add(ts1);
    myDataGrid.get_TableStyles().Add(ts2);
} //AddCustomDataTableStyle

System.Object
   System.MarshalByRefObject
     System.Windows.Forms.BaseCollection
      System.Windows.Forms.GridTableStylesCollection
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.