我的表单中有一个DataGridView,它从DataTable获取源代码。在设置源之后是否有办法将列类型更改为DataGridViewCheckBoxColumn,或者我必须单独插入每行及其单元格然后执行更改
上一个代码:
Select("uspSelectChildByClientID",
new string[] { "clientID" }, new string[] { nodeTag.ToString() });
dataGridViewC.DataSource = dataTable;
预期代码(如果在获取源代码后确实无法更改它):
Select("uspSelectChildByClientID", new string[] { "clientID" },
new string[] { nodeTag.ToString() });
for (int x = 0; x < dataTable.Columns.Count; x++)
dataGridViewC.Columns.Add("hello", dataTable.Columns[x].ColumnName.ToString());
DataGridViewCheckBoxCell column = new DataGridViewCheckBoxCell();
*add checkbox column and make another loop*
答案 0 :(得分:2)
通常,在DataSource
中同时依赖Columns.Insert()
和DataGridView
并不是完全可以推荐的。虽然在处理特殊列类型(如DataGridViewCheckBoxColumn
)时,这种方法确实提供了很好的答案。甚至可能不需要在细胞水平上进一步修改。示例代码:
DataTable dt = new DataTable();
dt.Columns.Add("Col 1", typeof(int));
dt.Rows.Add(1);
dt.Rows.Add(2);
dt.Rows.Add(3);
dataGridView1.DataSource = dt;
DataGridViewCheckBoxColumn curCol = new DataGridViewCheckBoxColumn();
curCol.HeaderText = "Col 2";
dataGridView1.Columns.Insert(1, curCol);