C# 获取 DataGridView 控件列信息的方法
在 C# 中获取 DataGridView 控件的列名、列标题和列类型信息,可通过遍历 Columns 集合实现。以下是详细方法和代码示例:
核心方法
// 获取 DataGridView 所有列信息
void GetColumnInfo(DataGridView dgv)
{
foreach (DataGridViewColumn column in dgv.Columns)
{
string columnName = column.Name; // 列名(设计时标识)
string headerText = column.HeaderText; // 列标题(显示文本)
string columnType = column.GetType().Name; // 列控件类型
// 输出结果示例
Console.WriteLine($"列名: {columnName}, 标题: {headerText}, 类型: {columnType}");
}
}
关键属性说明
-
列名 (Name)
- 设计时指定的标识符,用于代码中引用列
- 通过
column.Name获取
-
列标题 (HeaderText)
- 显示在列顶部的文本
- 通过
column.HeaderText获取 - 可通过
column.HeaderText = "新标题"动态修改
-
列类型 (Column Type)
- 列控件的实际类型(如
DataGridViewTextBoxColumn) - 通过
column.GetType().Name获取类型名称 - 常见类型:
DataGridViewTextBoxColumn:文本框列DataGridViewButtonColumn:按钮列DataGridViewCheckBoxColumn:复选框列DataGridViewComboBoxColumn:下拉框列
- 列控件的实际类型(如
完整示例
// 在窗体加载时获取列信息
private void Form1_Load(object sender, EventArgs e)
{
// 添加示例列
dataGridView1.Columns.Add("ID", "编号");
dataGridView1.Columns.Add(new DataGridViewTextBoxColumn {
Name = "Product",
HeaderText = "产品名称"
});
dataGridView1.Columns.Add(new DataGridViewButtonColumn {
Name = "Action",
HeaderText = "操作"
});
// 获取并显示列信息
StringBuilder sb = new StringBuilder();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
sb.AppendLine($"列名: {col.Name.PadRight(8)} | " +
$"标题: {col.HeaderText.PadRight(10)} | " +
$"类型: {col.GetType().Name}");
}
MessageBox.Show(sb.ToString(), "列信息");
}
输出结果示例
列名: ID | 标题: 编号 | 类型: DataGridViewTextBoxColumn
列名: Product | 标题: 产品名称 | 类型: DataGridViewTextBoxColumn
列名: Action | 标题: 操作 | 类型: DataGridViewButtonColumn
注意事项
-
动态列处理
当列是动态生成时(如通过数据绑定),需确保在DataBindingComplete事件触发后再获取列信息:dataGridView1.DataBindingComplete += (s, e) => GetColumnInfo(dataGridView1); -
特殊列类型
- 按钮列需通过
DataGridViewButtonColumn类型处理 - 图像列使用
DataGridViewImageColumn
- 按钮列需通过
-
数据源列
若控件绑定到数据库,列名通常对应字段名:var sqlColumns = dataGridView1.Columns .Cast<DataGridViewColumn>() .Select(c => c.DataPropertyName);
970

被折叠的 条评论
为什么被折叠?



