通过绘制在datagridview控件列头添加一个checkbox控件

     众所周知,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的选择状态

 

Code

 

datagridviewCheckboxHeaderCell类,这是个关键列,用于绘制列头checkbox和创建鼠标单击事件

 

Code

 

 

还要定义和事件相关的委托:

    //定义触发单击事件的委托
    public delegate void datagridviewcheckboxHeaderEventHander(object sender, datagridviewCheckboxHeaderEventArgs e);

 

 

另外是界面操作代码:

 

Code

 

 

有需要完整源代码的朋友,请加入群74085440共享中下载!

 

 

 

 

 

posted @ 2008-11-22 11:31    阅读(6079)  评论(3编辑  收藏  举报