啥?客户叫在DataGridView的左上角添加CheckBox?

Posted zaranet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了啥?客户叫在DataGridView的左上角添加CheckBox?相关的知识,希望对你有一定的参考价值。

效果图是这样的,如何把CheckBox放到左上角是最重要的。

技术图片

添加方法 InitColumnInfo() 方法,代码如下。

 private void InitColumnInfo()
        {
            int index = 0;

            DataGridViewCheckBoxColumn colCB = new DataGridViewCheckBoxColumn();
            DatagridViewCheckBoxHeaderCell cbHeader = new DatagridViewCheckBoxHeaderCell();
            colCB.HeaderCell = cbHeader;
            colCB.HeaderText = "";
            colCB.FillWeight = 50;
            cbHeader.OnCheckBoxClicked += new CheckBoxClickedHandler(cbHeader_OnCheckBoxClicked);
            dataGridView2.Columns.Insert(index, colCB);

            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;//211, 223, 240
            dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Blue;
            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.Color.Blue;
            dataGridView2.Columns[index].DefaultCellStyle = dataGridViewCellStyle2;
        }

在Clicked事件中添加代码

private void cbHeader_OnCheckBoxClicked(bool state)
        {
            //这一句很重要结束编辑状态
            dataGridView2.EndEdit();
            dataGridView2.Rows.OfType<DataGridViewRow>().ToList().ForEach(t => t.Cells[0].Value = state);
        }

最后在窗体的Load事件中,调用 InitColumnInfo() 方法就可以了。

以上是关于啥?客户叫在DataGridView的左上角添加CheckBox?的主要内容,如果未能解决你的问题,请参考以下文章

C#winform的DataGridView问题

C# DataGridView 检测全选按钮

datagridview添加数据时,添入已有的日期(datetime)就显示不出来。啥情况

请问DataGridView绑定了数据源之后还要进行啥操作吗?为啥我绑定了不显示数据呢?

C#winform问题 datagridview中combobox选项改变触发事件用哪个方法。你是用啥方法解决的啊。

C#把DataGridView的数据导出为WPS的Excel需要引用啥组件