如何:向 Windows 窗体 DataGrid 控件添加表和列

提示

DataGridView 控件取代了 DataGrid 控件并添加了功能;但是,可以选择保留 DataGrid 控件以实现向后兼容并供将来使用。 有关更多信息,请参见 Windows 窗体 DataGridView 控件和 DataGrid 控件之间的区别

通过创建 DataGridTableStyle 对象,并将其添加到 GridTableStylesCollection 对象(通过 DataGrid 控件的 TableStyles 属性访问),可以用表和列的形式在 Windows 窗体 DataGrid 控件中显示数据。 每个表样式显示在 DataGridTableStyle 对象的 MappingName 属性中指定的任意数据表的内容。 默认情况下,未指定列样式的表样式将显示该数据表中的所有列。 通过将 DataGridColumnStyle 对象添加到 GridColumnStylesCollection 对象(通过各 DataGridTableStyle 对象的 GridColumnStyles 属性访问),可以限制所显示的表中的列。

以编程方式向 DataGrid 添加表和列

  1. 为在表中显示数据,必须首先将 DataGrid 控件绑定到数据集。 有关更多信息,请参见如何:将 Windows 窗体 DataGrid 控件绑定到数据源

    警告

    当以编程方式指定列样式时,在向 GridTableStylesCollection 对象添加 DataGridTableStyle 对象之前,请始终先创建 DataGridColumnStyle 对象并将其添加到 GridColumnStylesCollection 对象中。 当将空的 DataGridTableStyle 对象添加到集合时,会自动生成 DataGridColumnStyle 对象。 因此,如果尝试向 GridColumnStylesCollection 对象添加具有重复的 MappingName 值的新 DataGridColumnStyle 对象,则会引发异常。

  2. 声明新的表样式并设置其映射名称。

    Dim ts1 As New DataGridTableStyle()
    ts1.MappingName = "Customers"
    
    DataGridTableStyle ts1 = new DataGridTableStyle();
    ts1.MappingName = "Customers";
    
    DataGridTableStyle* ts1 = new DataGridTableStyle();
    ts1->MappingName = S"Customers";
    
  3. 声明新的列样式并设置其映射名称及其他属性。

    Dim myDataCol As New DataGridBoolColumn()
    myDataCol.HeaderText = "My New Column"
    myDataCol.MappingName = "Current"
    
    DataGridBoolColumn myDataCol = new DataGridBoolColumn();
    myDataCol.HeaderText = "My New Column";
    myDataCol.MappingName = "Current";
    
    DataGridBoolColumn^ myDataCol = gcnew DataGridBoolColumn();
    myDataCol->HeaderText = "My New Column";
    myDataCol->MappingName = "Current";
    
  4. 调用 GridColumnStylesCollection 对象的 Add 方法以将该列添加到表样式中

    ts1.GridColumnStyles.Add(myDataCol)
    
    ts1.GridColumnStyles.Add(myDataCol);
    
    ts1->GridColumnStyles->Add(myDataCol);
    
  5. 调用 GridTableStylesCollection 对象的 Add 方法以将表样式添加到数据网格中。

    DataGrid1.TableStyles.Add(ts1)
    
    dataGrid1.TableStyles.Add(ts1);
    
    dataGrid1->TableStyles->Add(ts1);
    

请参见

任务

如何:在 Windows 窗体 DataGrid 控件中删除或隐藏列

其他资源

DataGrid 控件(Windows 窗体)