基本信息
源码名称:带CheckBox列头的DataGridView 支持全选 反选功能 例子完整源码下载
源码大小:0.04M
文件格式:.rar
开发语言:C#
更新时间:2013-09-19
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
使用方法:
初始化这个列表头
DatagridViewCheckBoxHeaderCell cbHeader = new DatagridViewCheckBoxHeaderCell(); cbHeader.Value = ""; SelectUin.HeaderCell = cbHeader; cbHeader.OnCheckBoxClicked = new CheckBoxClickedHandler(cbHeader_OnCheckBoxClicked);
填写你的全选的业务逻辑
void cbHeader_OnCheckBoxClicked(bool Status) { for (int i = 0; i < this.dataGridView1.Rows.Count; i ) { dataGridView1.Rows[i].Cells["SelectUin"].Value = Status; } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Windows.Forms; namespace chbDGV { public delegate void CheckBoxClickedHandler(bool state); public class DataGridViewCheckBoxHeaderCellEventArgs : EventArgs { bool _bChecked; public DataGridViewCheckBoxHeaderCellEventArgs(bool bChecked) { _bChecked = bChecked; } public bool Checked { get { return _bChecked; } } } class DatagridViewCheckBoxHeaderCell : DataGridViewColumnHeaderCell { Point checkBoxLocation; Size checkBoxSize; bool _checked = false; Point _cellLocation = new Point(); System.Windows.Forms.VisualStyles.CheckBoxState _cbState = System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal; public event CheckBoxClickedHandler OnCheckBoxClicked; public DatagridViewCheckBoxHeaderCell() { } protected override void Paint(System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle cellBounds, int rowIndex, DataGridViewElementStates dataGridViewElementState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts) { base.Paint(graphics, clipBounds, cellBounds, rowIndex, dataGridViewElementState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts); Point p = new Point(); Size s = CheckBoxRenderer.GetGlyphSize(graphics, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal); p.X = cellBounds.Location.X (cellBounds.Width / 2) - (s.Width / 2); p.Y = cellBounds.Location.Y (cellBounds.Height / 2) - (s.Height / 2); _cellLocation = cellBounds.Location; checkBoxLocation = p; checkBoxSize = s; if (_checked) _cbState = System.Windows.Forms.VisualStyles. CheckBoxState.CheckedNormal; else _cbState = System.Windows.Forms.VisualStyles. CheckBoxState.UncheckedNormal; CheckBoxRenderer.DrawCheckBox (graphics, checkBoxLocation, _cbState); } protected override void OnMouseClick(DataGridViewCellMouseEventArgs e) { Point p = new Point(e.X _cellLocation.X, e.Y _cellLocation.Y); if (p.X >= checkBoxLocation.X && p.X <= checkBoxLocation.X checkBoxSize.Width && p.Y >= checkBoxLocation.Y && p.Y <= checkBoxLocation.Y checkBoxSize.Height) { _checked = !_checked; if (OnCheckBoxClicked != null) { OnCheckBoxClicked(_checked); this.DataGridView.InvalidateCell(this); } } base.OnMouseClick(e); } } }