C# DataGridView 使用行和列作为 Headers

C# DataGridView use Rows and Columns as Headers

我已连接到数据库。我创建了一个 DataViewGrid,它使用来自该数据库的数据绑定。 我想使用行和列作为 Headers,现在不知何故只有列作为 Headers。 我正在使用 Visual Studio 15 并想使用 Designer。 有没有人这样做过?或者知道更好的 Windows.Form 用于创建 Table,它们连接到数据库并且在行和列端有 Headers?

提前致谢

像 DevExpress PivotGrid 这样的第三方网格允许你做某事。像这样。据我所知,基本的 dataGridView 无法显示 RowHeader。您可以为数据源创建一个自定义列,其中包含 RowHeader 信息并将其显示为第一列。如果您稍微修改第一列布局,它可能看起来像 RowHeader。将是我使用基本 dataGridView 所知道的唯一技巧。

你的要求不是很清楚,但我猜你想自定义行和列headers。 dataGridView 可能是在 Windows 表单中查看数据的最佳控件之一。我将展示如何执行以下典型要求;

  1. 以标题大写或大写形式显示第 headers 列
  2. 自定义列headers具体名称
  3. 在第 headers
  4. 行显示行号

以下代码使用 C#

//Show Columns in Title, Lower(textInfo.ToLowerCase) or Upper case textInfo.ToUpperCase
    System.Globalization.TextInfo textInfo = new System.Globalization.CultureInfo("en-US", false).TextInfo;
    foreach (DataGridViewColumn col in dataGridView.Columns)
    {
        col.HeaderText = textInfo.ToTitleCase(col.HeaderText);
    }

//Customize specific column headers, using name or column index 
    dataGridView.Columns["number"].HeaderText = "No.";
    dataGridView.Columns["quantity"].HeaderText = "Product Quantity";
    dataGridView.Columns[0].HeaderText = "Code";    

//Set Row headers with numbers   
    int rowNumber = 1;
    foreach (DataGridViewRow row in dataGridView.Rows)
    {
        if (row.IsNewRow) continue;
        row.HeaderCell.Value = "Row " + rowNumber;
        rowNumber = rowNumber + 1;
    }
    dataGridView.AutoResizeRowHeadersWidth(
    DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);

Reference