DataGridTableStyle 类

定义

表示 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
实现

示例

下面的代码示例创建两DataGridTableStyle个 实例,并将每个 对象的 设置为 MappingNameTableNameDataSetDataTable 。 然后,该示例将 对象添加到DataGridColumnStyleGridColumnStylesCollection每个 DataGridTableStyle的 中。 有关运行的示例,请参阅示例 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的数据时使用的 ,请将 设置为 MappingNameTableNameDataTable

GridTableStylesCollection通过 TableStyles 属性检索的 包含控件使用System.Windows.Forms.DataGrid的所有 DataGridTableStyle 对象。 集合可以包含任意数量的 DataGridTableStyle 对象,但 MappingName 每个 对象的 必须是唯一的。 在运行时,这允许你根据用户的偏好,将不同的 DataGridTableStyle 替换为相同的数据。 要执行此操作:

  1. GridTableStylesCollection使用 DataGridTableStyle 对象填充 。 DataGridTableStyle如果 中GridTableStylesCollection存在 ,其MappingName属性值等于 DataTable 对象的 TableName 属性,DataTable则会使用此 DataGridTableStyle显示 。 如果 不存在 DataGridTableStyle 匹配 MappingNameDataTable ,则 以数据网格表的默认样式显示 。

  2. 如果需要其他网格样式,请使用 Item 属性选择适当的DataGridTableStyle (将 传递给TableNameItem[]属性) 并将返回对象的 设置为MappingName新值。

  3. Item[]使用 属性选择所需的 DataGridTableStyle,并将其设置为 MappingNameTableNameDataTable

注意

在将 对象添加到 之前,始终创建 DataGridColumnStyle 对象并将其添加到 DataGridTableStyleGridTableStylesCollectionGridColumnStylesCollection 将具有有效MappingName值的空DataGridTableStyle添加到集合时,DataGridColumnStyle将自动生成对象。 因此,如果尝试将具有重复MappingName值的新DataGridColumnStyle对象添加到 ,GridColumnStylesCollection将引发异常。

若要确定当前显示的内容DataGridTableStyle,请使用 DataSourceSystem.Windows.Forms.DataGridDataMember 属性返回 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如果 包含DataTableDataRelation 对象相关的对象,并且当前显示的 DataTable 是子表, DataMember 将返回一个字符串,在最简单的情况下为 TableName.RelationName () 。 DataTable如果 在层次结构中进一步向下,则字符串将包含父表的名称,后跟达到表的级别所需的必要RelationName值。 例如,假设层次结构关系中的三 DataTable 个对象 (从上到下) RegionsCustomersOrders,以及两 DataRelation 个名为 RegionsToCustomersCustomersToOrders的对象,属性 DataMember 将返回“Regions.RegionsToCustomers.CustomersToOrders”。 但是, MappingName 随后将为“Orders”。

对象的集合 DataGridTableStyle 通过 TableStylesSystem.Windows.Forms.DataGrid属性返回。

DataGridTableStyle显示 时, 的设置DataGridTableStyle将替代 控件的设置System.Windows.Forms.DataGrid。 如果未为特定 DataGridTableStyle 属性设置值, System.Windows.Forms.DataGrid 则将改用控件的值。 以下列表显示了 DataGridColumnStyle 可以设置为替代 System.Windows.Forms.DataGrid 控件属性的属性:

若要将 DataGrid 绑定到对象的强类型数组,该对象类型必须包含公共属性。 若要创建 DataGridTableStyle 显示数组的 ,请将 DataGridTableStyle.MappingName 属性设置为 typename ,其中 typename 替换为对象类型的名称。 另请注意, MappingName 属性区分大小写;类型名称必须完全匹配。 有关示例, MappingName 请参阅 属性。

还可以将 DataGridArrayList绑定到 。 的 ArrayList 一个功能是它可以包含多个类型的 对象,但 DataGrid 仅当列表中的所有项都与第一项属于同一类型时, 才能绑定到此类列表。 这意味着所有对象必须属于同一类型,或者它们必须继承自与列表中的第一项相同的类。 例如,如果列表中的第一项 Control是 ,则第二项 TextBox 可能是继承自 Control) 的 (。 另一方面,如果第一项 TextBox为 ,则第二个对象不能为 Control。 此外, ArrayList 绑定时中必须包含项,并且 中的 DataGridTableStyle 对象必须包含公共属性。 空 ArrayList 将导致空网格。 绑定到 时ArrayList,将 的 DataGridTableStyle 设置为MappingName“ArrayList”, (类型名称) 。

构造函数

DataGridTableStyle()

初始化 DataGridTableStyle 类的新实例。

DataGridTableStyle(Boolean)

使用指定值对 DataGridTableStyle 类的新实例进行初始化,以确定网格表是否为默认样式。

DataGridTableStyle(CurrencyManager)

使用指定的 DataGridTableStyle 初始化 CurrencyManager 类的新实例。

字段

DefaultTableStyle

获取默认的表样式。

属性

AllowSorting

指示在使用此 DataGridTableStyle 时是否允许在网格表上进行排序。

AlternatingBackColor

获取或设置网格中奇数行的背景色。

BackColor

获取或设置网格中偶数行的背景色。

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。

(继承自 Component)
ColumnHeadersVisible

获取或设置一个值,该值指示列标题是否可见。

Container

获取包含 IContainerComponent

(继承自 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

获取或设置 ComponentISite

(继承自 Component)

方法

BeginEdit(DataGridColumnStyle, Int32)

请求编辑操作。

CreateGridColumn(PropertyDescriptor)

使用指定的属性说明符创建一个 DataGridColumnStyle

CreateGridColumn(PropertyDescriptor, Boolean)

使用指定的属性说明符创建一个 DataGridColumnStyle。 指定 DataGridColumnStyle 是否为默认列样式。

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放由 Component 使用的所有资源。

(继承自 Component)
Dispose(Boolean)

处置由 DataGridTableStyle 占用的资源(内存除外)。

EndEdit(DataGridColumnStyle, Int32, Boolean)

请求结束编辑操作。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。

(继承自 Component)
GetType()

获取当前实例的 Type

(继承自 Object)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
OnAllowSortingChanged(EventArgs)

引发 AllowSortingChanged 事件。

OnAlternatingBackColorChanged(EventArgs)

引发 AlternatingBackColorChanged 事件。

OnBackColorChanged(EventArgs)

引发 BackColorChanged 事件。

OnColumnHeadersVisibleChanged(EventArgs)

引发 ColumnHeadersVisibleChanged 事件。

OnForeColorChanged(EventArgs)

引发 ForeColorChanged 事件。

OnGridLineColorChanged(EventArgs)

引发 GridLineColorChanged 事件。

OnGridLineStyleChanged(EventArgs)

引发 GridLineStyleChanged 事件。

OnHeaderBackColorChanged(EventArgs)

引发 HeaderBackColorChanged 事件。

OnHeaderFontChanged(EventArgs)

引发 HeaderFontChanged 事件。

OnHeaderForeColorChanged(EventArgs)

引发 HeaderForeColorChanged 事件。

OnLinkColorChanged(EventArgs)

引发 LinkColorChanged 事件。

OnLinkHoverColorChanged(EventArgs)

引发 LinkHoverColorChanged 事件。

OnMappingNameChanged(EventArgs)

引发 MappingNameChanged 事件。

OnPreferredColumnWidthChanged(EventArgs)

引发 PreferredColumnWidthChanged 事件。

OnPreferredRowHeightChanged(EventArgs)

引发 PreferredRowHeightChanged 事件。

OnReadOnlyChanged(EventArgs)

引发 ReadOnlyChanged 事件。

OnRowHeadersVisibleChanged(EventArgs)

引发 RowHeadersVisibleChanged 事件。

OnRowHeaderWidthChanged(EventArgs)

引发 RowHeaderWidthChanged 事件。

OnSelectionBackColorChanged(EventArgs)

引发 SelectionBackColorChanged 事件。

OnSelectionForeColorChanged(EventArgs)

引发 SelectionForeColorChanged 事件。

ResetAlternatingBackColor()

AlternatingBackColor 属性重置为其默认值。

ResetBackColor()

BackColor 属性重置为其默认值。

ResetForeColor()

ForeColor 属性重置为其默认值。

ResetGridLineColor()

GridLineColor 属性重置为其默认值。

ResetHeaderBackColor()

HeaderBackColor 属性重置为其默认值。

ResetHeaderFont()

HeaderFont 属性重置为其默认值。

ResetHeaderForeColor()

HeaderForeColor 属性重置为其默认值。

ResetLinkColor()

LinkColor 属性重置为其默认值。

ResetLinkHoverColor()

LinkHoverColor 属性重置为其默认值。

ResetSelectionBackColor()

SelectionBackColor 属性重置为其默认值。

ResetSelectionForeColor()

SelectionForeColor 属性重置为其默认值。

ShouldSerializeAlternatingBackColor()

指示是否应使 AlternatingBackColor 属性持久化。

ShouldSerializeBackColor()

指示是否应使 BackColor 属性持久化。

ShouldSerializeForeColor()

指示是否应使 ForeColor 属性持久化。

ShouldSerializeGridLineColor()

指示是否应使 GridLineColor 属性持久化。

ShouldSerializeHeaderBackColor()

指示是否应使 HeaderBackColor 属性持久化。

ShouldSerializeHeaderForeColor()

指示是否应使 HeaderForeColor 属性持久化。

ShouldSerializeLinkColor()

指示是否应使 LinkColor 属性持久化。

ShouldSerializeLinkHoverColor()

指示是否应使 LinkHoverColor 属性持久化。

ShouldSerializePreferredRowHeight()

指示是否应使 PreferredRowHeight 属性持久化。

ShouldSerializeSelectionBackColor()

指示是否应使 SelectionBackColor 属性持久化。

ShouldSerializeSelectionForeColor()

指示是否应使 SelectionForeColor 属性持久化。

ToString()

返回包含 Component 的名称的 String(如果有)。 不应重写此方法。

(继承自 Component)

事件

AllowSortingChanged

AllowSorting 属性值更改时发生。

AlternatingBackColorChanged

AlternatingBackColor 值更改时发生。

BackColorChanged

BackColor 值更改时发生。

ColumnHeadersVisibleChanged

ColumnHeadersVisible 值更改时发生。

Disposed

在通过调用 Dispose() 方法释放组件时发生。

(继承自 Component)
ForeColorChanged

ForeColor 值更改时发生。

GridLineColorChanged

GridLineColor 值更改时发生。

GridLineStyleChanged

GridLineStyle 值更改时发生。

HeaderBackColorChanged

HeaderBackColor 值更改时发生。

HeaderFontChanged

HeaderFont 值更改时发生。

HeaderForeColorChanged

HeaderForeColor 值更改时发生。

LinkColorChanged

LinkColor 值更改时发生。

LinkHoverColorChanged

LinkHoverColor 值更改时发生。

MappingNameChanged

MappingName 值更改时发生。

PreferredColumnWidthChanged

PreferredColumnWidth 属性值更改时发生。

PreferredRowHeightChanged

PreferredRowHeight 值更改时发生。

ReadOnlyChanged

ReadOnly 值更改时发生。

RowHeadersVisibleChanged

RowHeadersVisible 值更改时发生。

RowHeaderWidthChanged

RowHeaderWidth 值更改时发生。

SelectionBackColorChanged

SelectionBackColor 值更改时发生。

SelectionForeColorChanged

SelectionForeColor 值更改时发生。

适用于

另请参阅