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
相关产品推荐
相关产品推荐

