如何:设置 Windows 窗体 DataGrid 控件的格式

提示

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

DataGrid 控件的不同部分应用不同颜色可使得该控件中的信息更加易于阅读和解释。 颜色可以应用于行和列。 您还可以自行决定隐藏还是显示行和列。

设置 DataGrid 控件的格式有三个基本方面。 您可以设置属性来建立显示数据的默认样式。 以此为基础,接着可以自定义某些表在运行时的显示方式。 最后,您可以修改在数据网格中显示哪些列以及显示哪些颜色和其他格式设置。

设置数据网格的格式时,首先可以设置 DataGrid 本身的属性。 以这些颜色和格式选择为基础,您可以根据显示的数据表和列进行更改。

为 DataGrid 控件创建默认样式

以编程方式设置数据表的表样式和列样式

  1. 创建一个新的表样式并设置其属性。

  2. 创建一个列样式并设置其属性。

  3. 将列样式添加到表样式的列样式集合中。

  4. 将表样式添加到数据网格的表样式集合中。

  5. 在下面的示例中,将创建新 DataGridTableStyle 的实例,然后对其 MappingName 属性进行设置。

  6. 创建 GridColumnStyle 的一个新实例并设置其 MappingName(和其他一些布局和显示属性)。

  7. 对于要创建的每个列样式,重复步骤 2 到 6。

    下面的示例说明如何创建 DataGridTextBoxColumn 以便在该列中显示一个名称。 另外,将列样式添加到表样式的 GridColumnStylesCollection 中,并将表样式添加到数据网格的 GridTableStylesCollection 中。

    Private Sub CreateAuthorFirstNameColumn()
       ' Add a GridTableStyle and set the MappingName 
       ' to the name of the DataTable.
       Dim TSAuthors As New DataGridTableStyle()
       TSAuthors.MappingName = "Authors"
    
       ' Add a GridColumnStyle and set the MappingName 
       ' to the name of a DataColumn in the DataTable. 
       ' Set the HeaderText and Width properties. 
       Dim TCFirstName As New DataGridTextBoxColumn()
       TCFirstName.MappingName = "AV_FName"
       TCFirstName.HeaderText = "First Name"
       TCFirstName.Width = 75
       TSAuthors.GridColumnStyles.Add(TCFirstName)
    
       ' Add the DataGridTableStyle instance to 
       ' the GridTableStylesCollection. 
       myDataGrid.TableStyles.Add(TSAuthors)
    End Sub 
    
    private void addCustomDataTableStyle()
    {
       // Add a GridTableStyle and set the MappingName 
       // to the name of the DataTable.
       DataGridTableStyle TSAuthors = new DataGridTableStyle();
       TSAuthors.MappingName = "Authors";
    
       // Add a GridColumnStyle and set the MappingName 
       // to the name of a DataColumn in the DataTable. 
       // Set the HeaderText and Width properties. 
       DataGridColumnStyle TCFirstName = new DataGridTextBoxColumn();
       TCFirstName.MappingName = " AV_FName";
       TCFirstName.HeaderText = "First Name";
       TCFirstName.Width = 75;
       TSAuthors.GridColumnStyles.Add(TCFirstName);
    
       // Add the DataGridTableStyle instance to 
       // the GridTableStylesCollection. 
       dataGrid1.TableStyles.Add(TSAuthors);
    }
    
    private:
       void addCustomDataTableStyle()
       {
          // Add a GridTableStyle and set the MappingName 
          // to the name of the DataTable.
          DataGridTableStyle^ TSAuthors = new DataGridTableStyle();
          TSAuthors->MappingName = "Authors";
    
          // Add a GridColumnStyle and set the MappingName 
          // to the name of a DataColumn in the DataTable. 
          // Set the HeaderText and Width properties. 
          DataGridColumnStyle^ TCFirstName = gcnew DataGridTextBoxColumn();
          TCFirstName->MappingName = "AV_FName";
          TCFirstName->HeaderText = "First Name";
          TCFirstName->Width = 75;
          TSAuthors->GridColumnStyles->Add(TCFirstName);
    
          // Add the DataGridTableStyle instance to 
          // the GridTableStylesCollection. 
          dataGrid1->TableStyles->Add(TSAuthors);
       }
    

请参见

任务

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

参考

GridTableStylesCollection

GridColumnStylesCollection

DataGrid

其他资源

DataGrid 控件(Windows 窗体)