我创建了一个 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.
}
如果我单击该行上的另一个单元格,则会正确处理该复选框。仅当我单击复选框单元格而不是复选框本身时。
我的意思是(并道歉),代码正确执行,但 UI 没有正确更新以反映更改。因此,如果复选框在病房之后似乎也未选中之前未选中,即使它实际上已被选中。
谢谢罗恩