You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何将ListBox项添加至DataGridView及DataTable列头

如何将ListBox中的项设置为DataTable列头并绑定到DataGridView?

嘿,我看你是想把ListBox里的项转成DataTable的列头,再绑定到DataGridView对吧?你的现有代码有俩小问题,我给你修正下,顺便讲讲为啥这么改:

你的现有代码问题点:

  • for循环里没写i++,这会导致无限循环,程序直接卡死
  • Columns.AddRange()方法要求传入DataColumn类型的数组,但你直接传了字符串,这会编译报错

修正后的完整代码

方式一:用foreach遍历(更简洁)

// 初始化空的DataTable
DataTable DT = new DataTable();

// 遍历ListBox的每一项,把项文本作为列名添加到DataTable
foreach (var listItem in listBox1.Items)
{
    DT.Columns.Add(listItem.ToString());
}

// 将DataTable绑定到DataGridView,此时列头就是ListBox里的项
dataGridView1.DataSource = DT;

方式二:用for循环(如果你习惯这种写法)

DataTable DT = new DataTable();
// 这里一定要加上i++,不然会无限循环
for (int i = 0; i < listBox1.Items.Count; i++)
{
    string columnName = listBox1.Items[i].ToString();
    DT.Columns.Add(columnName);
}
dataGridView1.DataSource = DT;

补充说明

这样操作后,DataGridView的列头就会完全对应ListBox里的每一项。之后如果需要给DataTable添加行数据,直接创建DataRow并添加到DT.Rows里就行,列头不会受影响。

内容的提问来源于stack exchange,提问作者1878 alianware

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 00:42:47