在C#中将列类型更改为DataGridViewCheckBoxColumn

时间:2015-09-03 20:30:29

标签: c# visual-studio datagridview

我的表单中有一个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*

1 个答案:

答案 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);