好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#获取DataGridView所有的列表名的方法

一、获取 DataGridView 所有列名的详细方法及扩展说明:

核心方法:遍历 Columns 集合

List<string> columnNames = dgvHdhcms.Columns

                           .Cast<DataGridViewColumn>()

                           .Select(col => col.Name)  // 或 col.HeaderText 获取显示标题

                           .ToList();

二、关于DataRow数据列的一些关键属性说明

?1、列名 (Name)?

设计时指定的标识符,用于代码中引用列。

string name = column.Name;

?2、列标题 (HeaderText)?

显示在列顶部的文本,可通过代码动态修改。

string header = column.HeaderText;

column.HeaderText = "新标题";

3、?列类型 (GetType())?

返回列控件的实际类型(如 DataGridViewTextBoxColumn)。

string typeName = column.GetType().Name;

三、C#获取DataGridView绑定数据列的源码:

private void LoadColumnNames(DataGridView dgv)

{

    if (dgv?.Columns == null) return;

    // 获取所有列名

    var names = dgv.Columns.Cast<DataGridViewColumn>()

                      .Select(c => c.Name)

                      .ToList();

    // 输出示例

    foreach (var name in names)

    {

        Console.WriteLine($"列名: {name}");

    }

    // 可选:绑定到其他控件(如ComboBox)

    comboBox1.DataSource = names;

}

四、开发过程中要特别注意的一起开发场影

1. 动态添加/删除列后刷新

// 添加新列

dgvHdhcms.Columns.Add("newColumn", "动态列");

// 删除列后重新获取

dgvHdhcms.Columns.Remove("oldColumn");

var updatedNames = dgvHdhcms.Columns.Cast<DataGridViewColumn>().Select(c => c.Name);

2. 筛选特定类型的列

// 仅获取按钮列

var buttonColumns = dgvHdhcms.Columns

    .Cast<DataGridViewColumn>()

    .Where(c => c is DataGridViewButtonColumn)

    .Select(c => c.Name);

3. 处理绑定数据源的情况,若 DataGridView 绑定到 DataTable,列名可能与数据源字段名一致:

// 获取数据源字段名(需检查是否已绑定)

if (dgvHdhcms.DataSource is DataTable dt)

{

    var sourceColumnNames = dt.Columns.Cast<DataColumn>().Select(dc => dc.ColumnName);

}

开发过程中需要注意的地方有:

1、?空引用检查?:始终验证 dgvHdhcms 和 Columns 是否为 null。

2、?性能优化?:频繁操作时建议使用 OfType<DataGridViewColumn>() 替代 Cast,避免无效类型转换。

3、?设计时与运行时差异?:若列在运行时动态生成,需确保操作时机在 DataBindingComplete 事件之后。


查看更多关于C#获取DataGridView所有的列表名的方法的详细内容...

  阅读:9次

上一篇: 没有了

下一篇:C#内置函数及常用功能