Я создал элемент управления DataGridView, в котором первый столбец является флажком. Когда я щелкаю внутри флажка, код выполняется правильно. ОДНАКО, когда щелчок происходит в ячейке, а не в флажке, код правильно обрабатывает состояние флажка, но не обновляет сам флажок, поэтому он остается в том состоянии, в котором он был до щелчка.
Как это исправить?
private void myDataGrid_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1) return; //check if row index is not selected
DataGridViewCheckBoxCell ch1 = new DataGridViewCheckBoxCell();
ch1 = (DataGridViewCheckBoxCell)myDataGrid.Rows[e.RowIndex].Cells[0];
if (ch1.Value == null)
ch1.Value = false;
switch (ch1.Value.ToString())
{
case "False":
ch1.Value = true;
break;
case "True":
ch1.Value = false;
break;
}
//BUT doesn't seem to matter what I do with ch1.Value. Inside the checkbox all is OK but
//outside, no.
}
Если я щелкну другую ячейку в строке, флажок будет обработан правильно. ТОЛЬКО когда я нажимаю в ячейке флажка, но НЕ в самом флажке.
Я имею в виду (и приношу извинения), что код выполняется правильно, но пользовательский интерфейс не обновляется должным образом, чтобы отразить изменение. Таким образом, если флажок снят до того, как он появится после , даже если он действительно проверяется.
Спасибо РОН