C# winform中的datagridview控件标头加入checkbox,实现全选功能。

时间:2024-04-24 12:38:25
 /// <summary>
/// 给DataGridView添加全选
/// </summary>
public class AddCheckBoxToDataGridView
{
public static System.Windows.Forms.DataGridView dgv;
public static void AddFullSelect()
{
if (dgv.Rows.Count < )
{
return;
}
this.dataGridView1.RowTemplate.Height = 23;
System.Windows.Forms.CheckBox ckBox = new System.Windows.Forms.CheckBox();
            ckBox.Text = "全选";
            ckBox.Checked = true;
            System.Drawing.Rectangle rect =
            dataGridView1.GetCellDisplayRectangle(0, -1, true);
            ckBox.Size = new System.Drawing.Size(dataGridView1.Columns[0].Width, 18);
            ckBox.Location =new Point( rect.Location.X+2,rect.Location.Y+2);
            ckBox.CheckedChanged += new EventHandler(ckBox_CheckedChanged);
            dataGridView1.Controls.Add(ckBox);
}
static void ckBox_CheckedChanged(object sender, EventArgs e)
{
for (int i = ; i < dgv.Rows.Count; i++)
{
dgv.Rows[i].Cells[].Value = ((System.Windows.Forms.CheckBox)sender).Checked;
}
dgv.EndEdit();
}
}

上面的类第一个方法,是为datagridview表头添加checkbox,第二个方法是全选功能实现。