0

我有一个 datagridview 并想添加 DataGridViewCheckBoxColumn 否则我有一个数据表并想将其设置为我的 gridview 的数据源但不能用复选框显示我的 gridview

for (int i = 0; i < oldTable.Rows.Count; i++)
        {
            DataColumn newHeader = new DataColumn();
            newHeader.ColumnName = oldTable.Rows[i].ItemArray[3].ToString();             
            newHeader.DataType =typeof(DataGridViewCheckBoxColumn);
            //newHeader.DataType = new DataGridViewCheckBoxColumn();
            //string newHeader = oldTable.Rows[i].ItemArray[3].ToString();
            newTable.Columns.Add(newHeader);                
        }
        DataRow accessRow = newTable.NewRow();            
        for (int j = 0; j < oldTable.Rows.Count; j++)
        {
            Boolean access =Convert.ToBoolean(oldTable.Rows[j][2]);
            accessRow[j] = access;
            var sklj=  accessRow[j].GetType();
        }
        newTable.Rows.Add(accessRow);
        dataGridView1.DataSource = newTable;
4

3 回答 3

0

我认为这比这更简单:

编辑:我错了:应该这样做:

DataGridViewCheckBoxColumn dgchk = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Add(dgchk);

这应该在您设置数据源之后完成。

于 2013-11-19T11:45:08.840 回答
0

像这样更改您的代码:

for (int i = 0; i < oldTable.Rows.Count; i++)
        {
            DataColumn newHeader = new DataColumn();
            newHeader.ColumnName = oldTable.Rows[i].ItemArray[3].ToString();             
            newHeader.DataType =typeof(System.Boolean); //Change This Line Like This
           newTable.Columns.Add(newHeader);                
        }

将您的代码更改typeof(DataGridViewCheckBoxColumn())typeof(System.Boolean)

于 2013-11-19T12:07:20.923 回答
0

只需像这样添加新的列和行...

yourTable.Columns.Add(new DataColumn("Selected", typeof(bool)));
yourTable.Rows.Add(false)
于 2018-07-04T16:03:28.153 回答