实现winform DataGridView增加一列CheckBox(复选框)列。
效果图
DataGridView => dgv
Form窗体加载事件
private void Form_Load(object sender, EventArgs e)
{
//为dgv增加复选框列
DataGridViewCheckBoxColumn checkbox = new DataGridViewCheckBoxColumn();
//列显示名称
checkbox.HeaderText = "选择";
checkbox.Name = "IsChecked";
checkbox.TrueValue = true;
checkbox.FalseValue = false;
checkbox.DataPropertyName = "IsChecked";
//列宽
checkbox.Width = 50;
//列大小不改变
checkbox.Resizable = DataGridViewTriState.False;
//添加的checkbox在dgv第一列
this.dgv.Columns.Insert(0, checkbox);
}
dgv CellMouseClick 鼠标点击列事件
控制checkbox勾选还是不勾选
private void dgv_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
//不是序号列和标题列时才执行
if (e.RowIndex != -1 && e.ColumnIndex != -1)
{
//checkbox 勾上
if ((bool)dgv.Rows[e.RowIndex].Cells[0].EditedFormattedValue == true)
{
//选中改为不选中
this.dgv.Rows[e.RowIndex].Cells[0].Value = false;
}
else
{
//不选中改为选中
this.dgv.Rows[e.RowIndex].Cells[0].Value = true;
}
}
}