众所周知,datagridview控件是CS架构中用的比较频繁的一个控件,里面提供了checkbox列的功能,可是却没有在列头给出checkbox控件用于全选/全部取消所有行的功能,确实是个遗憾,这里就通过绘制实现这个功能.
该程序参考codeproject上的程序,网址如下:
http://www.codeproject.com/KB/grid/CheckBoxHeaderCell.aspx 向其致敬!
一.创建一个表,里面包含bit字段,datagridview的DataGridViewCheckBoxColumn列会自动将其转换成checkbox列
见表语句如下,数据库名为testDB
CREATE TABLE [dbo].[UserInfo] (
[RID] [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[username] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[gendar] [bit] NULL
) ON [PRIMARY]
二.主要代码
datagridviewCheckboxHeaderEventArgs类,用在在checkbox单击事件中提供类头checkbox的选择状态
datagridviewCheckboxHeaderCell类,这是个关键列,用于绘制列头checkbox和创建鼠标单击事件
还要定义和事件相关的委托:
//定义触发单击事件的委托
public delegate void datagridviewcheckboxHeaderEventHander(object sender, datagridviewCheckboxHeaderEventArgs e);
另外是界面操作代码:
有需要完整源代码的朋友,请加入群74085440共享中下载!