我有一个dataGridView,他的第一列是checkBox。
我想在此复选框上使用选中的事件。
这是我的代码:
dataGridView1.EditingControlShowing += (sender, e) =>
{
if (dataGridView1.CurrentCell.ColumnIndex == 0)
{
CheckBox cb = (CheckBox)e.Control;
cb.CheckedChanged += (s, e1) =>
{
dosomething();
};
}
};
但是当我更改第一列中的复选框时,它永远不会进入checkedChanged事件。
答案 0 :(得分:1)
您可以将活动更改为CellContentClick活动,然后检查它是否为您的复选框列:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn)
{
DataGridViewCheckBoxCell cbCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (cbCell.Value == cbCell.TrueValue)
{
cbCell.Value = cbCell.FalseValue;
}
else
{
cbCell.Value = cbCell.TrueValue;
}
}
}