[C#][WinForm] GridView 中 CheckBox 全選
先建立資料連結,使用北風資料庫為例
private void gvBind()
{
using (SqlConnection con = new SqlConnection(ConnecString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("select * from Region", con))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
然後先建立一個 CheckBox 欄,等下才可以全部勾選
{
gvBind();
dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.PaleTurquoise; //奇數列顏色
//先建立個 CheckBox 欄
DataGridViewCheckBoxColumn cbCol = new DataGridViewCheckBoxColumn();
cbCol.Width = 50; //設定寬度
cbCol.HeaderText = " 全選";
cbCol.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //置中
dataGridView1.Columns.Insert(0, cbCol);
}
像這樣
接著再建立要全選的 CheckBox ,一樣放到 Form1_Load 中
//建立個矩形,等下計算 CheckBox 嵌入 GridView 的位置
Rectangle rect = dataGridView1.GetCellDisplayRectangle(0, -1, true);
rect.X = rect.Location.X + rect.Width / 4 -9;
rect.Y = rect.Location.Y + (rect.Height / 2 -9);
CheckBox cbHeader = new CheckBox();
cbHeader.Name = "checkboxHeader";
cbHeader.Size = new Size(18, 18);
cbHeader.Location = rect.Location;
//全選要設定的事件
cbHeader.CheckedChanged += new EventHandler(cbHeader_CheckedChanged);
//將 CheckBox 加入到 dataGridView
dataGridView1.Controls.Add(cbHeader);
#endregion
再把 CheckBox 全選的事件建立
{
foreach (DataGridViewRow dr in dataGridView1.Rows)
dr.Cells[0].Value = ((CheckBox)dataGridView1.Controls.Find("checkboxHeader", true)[0]).Checked;
}
完成了,呈現如下:
點選後
範例檔案 下載