无法检查DataGridView中的CheckboxColumn

时间:2013-07-23 05:48:56

标签: winforms c#-4.0 datagridview datagridviewcolumn

我有一个Datagridview,其中有一个复选框列。我想查看特定单元格的复选框。绑定网格后,我在表单加载中使用了下面的代码。

但它不起作用。

我使用for循环绑定网格。

DataGridViewCheckBoxColumn dgvc = new DataGridViewCheckBoxColumn();
dgvc.Name = "colCheck";
dgvc.Width = 50;               
dgvc.DefaultCellStyle.BackColor = Color.Lavender;                
dgvOption.Columns.Add(dgvc);

WebBrowserColumn wbc = new WebBrowserColumn();
wbc.Name = "colOptionText";
//wbc.Width = 500;
wbc.ReadOnly = true;
wbc.DefaultCellStyle.BackColor = Color.Lavender;         
dgvOption.Columns.Add(wbc);          

dgvOption.Columns.Add("colCorrect", "Correct");
dgvOption.Columns["colCorrect"].Visible = false;

dgvOption.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
dgvOption.AllowUserToResizeRows = false;
dgvOption.AllowUserToResizeColumns = false;            
dgvOption.CellBorderStyle = DataGridViewCellBorderStyle.None;
dgvOption.ClearSelection();

int i = 0;    
foreach (DataRow dtRow in dtOption.Rows)
{
    dgvOption.Rows.Add();
    dgvOption.Rows[i].Cells["colOptionText"].Value = dtRow["Options"].ToString();
    dgvOption.Rows[i].Cells["colCorrect"].Value = dtRow["Correct"].ToString();
    i += 1;
}

if(Answer !="")
{
    dgvOption.Rows[2].Cells["colCheck"].Value = true;
}

private void dgvOption_SelectionChanged(object sender, EventArgs e)
{
    dgvOption.ClearSelection();            
}

private void dgvOption_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 0)
    {
        foreach (DataGridViewRow dgvRow in dgvOption.Rows)
        {
            dgvRow.Cells["colCheck"].Value = false;
        }

        dgvOption.CurrentCell.Value = true;
    }
}

2 个答案:

答案 0 :(得分:0)

Selected属性是选择单元格,而不是选中复选框。使用Value属性。

dgvOption.Rows[2].Cells["colCheck"].Value = true;

答案 1 :(得分:0)

您必须选中DataGridView任务列表中的启用编辑复选框。这是屏幕截图

enter image description here