Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 无法检查DataGridView中的CheckboxColumn_Winforms_C# 4.0_Datagridview_Datagridviewcolumn - Fatal编程技术网

Winforms 无法检查DataGridView中的CheckboxColumn

Winforms 无法检查DataGridView中的CheckboxColumn,winforms,c#-4.0,datagridview,datagridviewcolumn,Winforms,C# 4.0,Datagridview,Datagridviewcolumn,我有一个Datagridview,其中有一个复选框列。我想选中特定单元格的复选框。我在绑定网格后的表单加载中使用了以下代码 但它不起作用 我正在使用for循环绑定网格 DataGridViewCheckBoxColumn dgvc = new DataGridViewCheckBoxColumn(); dgvc.Name = "colCheck"; dgvc.Width = 50; dgvc.DefaultCellStyle.BackColor = Color.La

我有一个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;
    }
}

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

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

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


然后其他地方有一个问题,因为这是在datagridview中检查复选框的正确方法。您的代码中是否有类似于
CellValueChanged
的事件?另外,如果将此项添加到循环
dgvOption.Rows[i].Cells[“colCheck”]。Value=true-是否正在检查checbox?检查我也发布了该事件。嗯,我没有发现该事件有任何错误,您是否尝试将检查代码移动到循环中,然后看看会发生什么?然后,您的代码出现了严重错误。第一步是在选中复选框时放入debug,然后从中遍历代码,查看是否有
异常
或其他代码取消选中它。这是选中复选框的唯一方法,因此100%的代码有问题。我已经解决了我的问题,两年前我就发布了这个问题。