c# winforms datagridview复选框-增加可点击区域到整个列的宽度
本文关键字:区域 复选框 datagridview winforms 增加 | 更新日期: 2023-09-27 18:19:02
我已经搜索并发现没有解决方案,适用于我的问题,所以这是我的情况:
我在WinForms中有一个datagridview
,并希望包含复选框的整个单元格使该框被选中/未选中。目前,我必须在复选框内点击。
我不希望我的用户不得不玩"复选框狙击"。真烦人。
谢谢米歇尔。
我不确定是否有一些直接的方法,但您可以处理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。
首先获得单元格单击事件遵循此链接。在此基础上,您可以更改复选框。检查代码。本教程也很好,选择正确的单元格并勾选那边的复选框