啥?客户叫在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() 方法就可以了。