切换所有复选框内的DataGrid列
超过一年半前,我写了一篇文章,选择/取消选择所有复选框内Grid View网站的形式。上个月,我有机会实现相同的功能为DataGrid View控件的窗口形式。最初,我以为它很容易在案件的Grid View网站的形式,但它不是。它是一个有点棘手的案件的DataGrid View控件的窗口形式。例如,添加一个复选框在标题栏DataGrid View控件并不是一项简单的工作。所以在做了大量的研究工作,并花了很多时间学习控制的功能,我终于到达了以下的解决方案。所有的修改和澄清是最受欢迎的!
内容表
简介
添加行/头复选框(英)
添加行复选框在一个DataGrid View柱
添加一个复选框在一个DataGrid View列标题
附加头复选框的DataGrid View的事件
附加头复选框的鼠标点击和Up事件
头复选框的鼠标点击事件处理程序
头复选框的Up事件处理程序
将DataGrid View的cellvaluechanged,currentcelldirtystatechanged和cellpainting事件
DataGrid View的cellvaluechanged事件处理程序
DataGrid View的cellpainting事件处理程序
DataGrid View的currentcelldirtystatechanged事件处理程序
方法相关的行/头复选框和DataGrid View
addheadercheckbox方法
resetlocation方法
headercheckboxclick方法
rowcheckboxclick方法
bindgridview方法
清盘
历史
简介
超过一年半前,我写了一篇文章,选择/取消选择所有复选框内Grid View网站的形式。上个月,我有机会实现相同的功能为DataGrid View控件的窗口形式。最初,我以为它很容易在案件的Grid View网站的形式,但它不是。它是一个有点棘手的案件的DataGrid View控件的窗口形式。例如,添加一个复选框在标题栏DataGrid View控件并不是一项简单的工作。所以在做了大量的研究工作,并花了很多时间学习控制的功能,我终于到达了以下的解决方案。所有的修改和澄清是最受欢迎的!
添加行复选框在一个DataGrid View柱
添加行复选框在一个DataGrid View列,我添加了一个datagridviewcheckboxcolumn列控制。我已经作了allowusertoaddrows和allowusertodeleterows性质的DataGrid View[dgvselectall]等于虚假,如:
崩溃|复制代码
dgvselectall.allowusertoaddrows=假;
dgvselectall.allowusertodeleterows=假;添加报头复选框在DataGrid View柱
正如我前面所说,添加报头复选框在DataGrid View柱是有点棘手。我已经添加了一头复选框[headercheckbox]在DataGrid View柱通过调用addheadercheckbox方法通过窗体的加载事件,如:
崩溃|复制代码
私人无效frmselectall_load(对象发送按钮,电子)
{
addheadercheckbox();
…
}我会解释的addheadercheckbox方法后。
附加头复选框的鼠标点击和Up事件
我的头复选框的有线鼠标点击和Up事件通过窗体的加载事件,如:
崩溃|复制代码
私人无效frmselectall_load(对象发送按钮,电子)
{
…
headercheckbox.keyup+=新keyeventhandler(headercheckbox_keyup);
headercheckbox.mouseclick+=新mouseeventhandler(headercheckbox_mouseclick);
…
}头复选框的鼠标点击事件处理程序
鼠标点击事件被解雇的每次点击标题”复选框。在这里,该headercheckboxclick方法调用通过头复选框的参考参数。我将讨论headercheckboxclick方法后。
崩溃|复制代码
私人无效headercheckbox_mouseclick(对象发送,mouseeventargs欧)
{
headercheckboxclick((复选框)发送);
}头复选框的Up事件处理程序
Up事件被解雇,每当我们释放的一个重要的头复选框如果具有焦点。在这里,headercheckboxclick方法的调用通过头复选框的参考参数,提供此事件引发的空间酒吧。
崩溃|复制代码
私人无效headercheckbox_keyup(对象发送,keyeventargs欧)
{
如果(中国能拿多少块金牌==密钥空间。)
headercheckboxclick((复选框)发送);
}将DataGrid View的cellvaluechanged,currentcelldirtystatechanged和cellpainting事件
我有线DataGrid View的cellvaluechanged,currentcelldirtystatechanged,和cellpainting事件,分别,透过窗户形式的加载事件,如:
崩溃|复制代码
私人无效frmselectall_load(对象发送按钮,电子)
{
…
dgvselectall.cellvaluechanged+=
新datagridviewcelleventhandler(dgvselectall_cellvaluechanged);
dgvselectall.currentcelldirtystatechanged+=
新tHandler(dgvselectall_currentcelldirtystatechanged);
dgvselectall.cellpainting+=
新datagridviewcellpaintingeventhandler(dgvselectall_cellpainting);
…
}DataGrid View的cellvaluechanged事件处理程序
该cellvaluechanged事件得到发射时的价值的DataGrid View细胞改变。这里的方法,rowcheckboxclick调用传递一个参考的datagridviewcheckboxcell,提出这个事件,提供了头不点击复选框。我会描述rowcheckboxclick方法后。
崩溃|复制代码
私人无效dgvselectall_cellvaluechanged(对象发送,datagridviewcelleventargs欧)
{
如果(!isheadercheckboxclicked)
rowcheckboxc
评论已关闭