我搜索过并找不到适用于我的问题的解决方案,所以这是我的情况:
我在WinForms中有一个datagridview
,并希望包含复选框的整个单元格可以选中/取消选中该框。目前,我必须完全点击复选框本身。
我不希望我的用户必须玩#34;复选框狙击手"。它很烦人。
由于 -Michele
答案 0 :(得分:2)
我不确定是否存在某种直接方式,但您可以处理DataGridView.CellClick事件:
private void dataGridView_CellClick(object sender,
DataGridViewCellEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (!(dgv.Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn))
return;
DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)
dgv.Rows[e.RowIndex].Cells[e.ColumnIndex];
cell.Value = !(Boolean)cell.Value;
}
但有一个问题:
对于DataGridViewCheckBoxCell中的点击,此事件发生在 复选框更改值,因此如果您不想计算 基于当前值的预期值,您通常会处理 而是改为DataGridView.CellValueChanged事件。
因此,为避免不愉快的影响,您还必须处理DataGridView.CellValueChanged并使用一些标志来检测更改是由正常检查还是由CellClick事件处理程序引起。
答案 1 :(得分:0)