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 表单中查看数据的最佳控件之一。我将展示如何执行以下典型要求;
- 以标题大写或大写形式显示第 headers 列
- 自定义列headers具体名称
- 在第 headers
行显示行号
以下代码使用 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);
我已连接到数据库。我创建了一个 DataViewGrid,它使用来自该数据库的数据绑定。 我想使用行和列作为 Headers,现在不知何故只有列作为 Headers。 我正在使用 Visual Studio 15 并想使用 Designer。 有没有人这样做过?或者知道更好的 Windows.Form 用于创建 Table,它们连接到数据库并且在行和列端有 Headers?
提前致谢
像 DevExpress PivotGrid 这样的第三方网格允许你做某事。像这样。据我所知,基本的 dataGridView 无法显示 RowHeader。您可以为数据源创建一个自定义列,其中包含 RowHeader 信息并将其显示为第一列。如果您稍微修改第一列布局,它可能看起来像 RowHeader。将是我使用基本 dataGridView 所知道的唯一技巧。
你的要求不是很清楚,但我猜你想自定义行和列headers。 dataGridView 可能是在 Windows 表单中查看数据的最佳控件之一。我将展示如何执行以下典型要求;
- 以标题大写或大写形式显示第 headers 列
- 自定义列headers具体名称
- 在第 headers 行显示行号
以下代码使用 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);