Невозможно проверить CheckboxColumn в DataGridView

У меня есть 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;
    }
}

person Raghubar    schedule 23.07.2013    source источник


Ответы (2)


Свойство Selected состоит в том, чтобы выбрать ячейку, а не установить в ней флажок. Используйте свойство Value.

dgvOption.Rows[2].Cells["colCheck"].Value = true;
person gzaxx    schedule 23.07.2013
comment
Тогда есть проблема в другом месте, так как это правильный способ установить флажок в datagridview. - person gzaxx; 23.07.2013
comment
Есть ли в вашем коде такие события, как CellValueChanged? Также что произойдет, если вы добавите это в свой цикл dgvOption.Rows[i].Cells["colCheck"].Value = true; - проверяется ли флажок? - person gzaxx; 23.07.2013
comment
Проверьте, я также опубликовал эти события. - person Raghubar; 23.07.2013
comment
Хм, я не вижу ничего плохого в этом событии, вы пытались переместить код проверки в цикл и посмотреть, что тогда произойдет? - person gzaxx; 23.07.2013
comment
Тогда с вашим кодом что-то очень не так. Первым шагом было бы поставить отладку, когда вы устанавливаете флажок, и оттуда перейти к коду и посмотреть, есть ли Exception или какой-либо другой код, снимающий его. Это единственный способ установить флажок, поэтому на 100% процентов что-то не так с кодом. - person gzaxx; 23.07.2013

Необходимо установить флажок «Включить редактирование» в списке задач DataGridView. вот снимок экрана

введите здесь описание изображения

person Sajitha Rathnayake    schedule 13.01.2015
comment
Я уже решил свою проблему, и я разместил этот вопрос два года назад. - person Raghubar; 13.01.2015