DataGridVidw添加CheckBox。并通过一个 CheckBox来控制其全选。

嘿嘿,又是我!来吧,开始今天的 分享时间……

公共方法绑定 DataGridView表头,此方法可以通用。

private void dgVColumName(DataGridView dgvper)
        {
            string showHeads = ",p_name:演出名称,prov:省份,city:城市,area:地区,p_class:类别,P_Time11:演出时间,".ToLower();// 以 ,:, 为一个分组。

            foreach (DataGridViewColumn col in dgvper.Columns)
            {
                int p = showHeads.IndexOf("," + col.Name.ToLower() + ":");
                if (p >= 0)
                {
                    dgvper.Columns[col.Name].Visible = true;
                    dgvper.Columns[col.Name].ReadOnly = true;
                    string n = showHeads.Substring(p + 1, showHeads.Substring(p + 1).IndexOf(","));
                    try
                    {
                        n = n.Split(':')[1];
                    }
                    catch { }
                    dgvper.Columns[col.Name].HeaderText = n;
                }
                else
                {
                    dgvper.Columns[col.Name].Visible = false;
                }
            }
            dgvper.Columns.Insert(0, new DataGridViewCheckBoxColumn(false));// 在 第一列中添加 checkbox
            dgvper.Columns[0].ReadOnly = false;
            dgvper.Columns[0].Width = 20; 控制宽度
        }

不知为毛图片成这样了。反正就是绑定了N条数据,每条前面有个 CheckBox而已。下面有个全选的CheckBox

if (chbP1Name.Checked) 全选
            {
                foreach (DataGridViewRow dr in dgvper.Rows) 遍历DataGridView的每一行
                {

                    ((DataGridViewCheckBoxCell)dr.Cells[0]).Value = true;   当前行的 第一个单元格。即CheckBox选中
                    ((DataGridViewCheckBoxCell)dr.Cells[0]).ReadOnly = true; 不可更改选中状态
                }
            }
            else
            {
                foreach (DataGridViewRow dr in dgvper.Rows)
                {
                    ((DataGridViewCheckBoxCell)dr.Cells[0]).ReadOnly = false;
                }
            }

原文地址:https://www.cnblogs.com/Lin267307031/p/2671126.html