下面演示如何在 DataGridView 中动态绑定 CheckBox:

public class Test
{
/// <summary>
/// 构造器
/// </summary>
public Test()
{
InitializeComponent();
//生成全选checkbox
GenerateCheckbox();
}
/// <summary>
/// 全选按钮的选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void checkboxAll_CheckedChanged(object sender, EventArgs e)
{
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
dr.Cells[].Value = ((CheckBox)dataGridView1.Controls.Find("checkboxAll", true)[]).Checked;
}
} /// <summary>
/// 生成全选Checkbox
/// </summary>
private void GenerateCheckbox()
{
//检查 dataGridView1 中是否至少绑定了一列
if (string.IsNullOrEmpty(dataGridView1.Columns[].Name))
return; //DataGridView 中专门用来显示 Checkbox 控件的列对象;dataGridView1 中添加此对象后,绑定数据时就会自动为每行创建一个新的 CheckBox 控件
//当然这一步也可以省略,换成直接在 dataGridView1 的 Columns 属性中添加一列,然后将其 ColumnType 设置成 DataGridViewCheckBoxColumn 即可
DataGridViewCheckBoxColumn gridViewCheckBoxCol = new DataGridViewCheckBoxColumn
{
Width = ,
HeaderText = "",
DefaultCellStyle =
{
Alignment = DataGridViewContentAlignment.MiddleCenter
},
ReadOnly = false //若为 true 则无法选择 CheckBox
}; //把 dataGridView1 的第一列设置成 CheckBox 格式的列
dataGridView1.Columns.Insert(, gridViewCheckBoxCol); //获取 dataGridView1 中表示单元格显示区域的矩形,通过矩形的位置来设置 CheckBox 的相对位置
Rectangle rectangle = dataGridView1.GetCellDisplayRectangle(, -, true);
rectangle.X = rectangle.Location.X + rectangle.Width + ;
rectangle.Y = rectangle.Location.Y + rectangle.Height + ; //新建一个用于“全选”的 CheckBox 对象 checkboxAll
CheckBox chkOfAll = new CheckBox();
chkOfAll.Name = "checkboxAll";
chkOfAll.Size = new Size(, );
chkOfAll.Location = rectangle.Location; //为 checkboxAll 绑定全选事件
chkOfAll.CheckedChanged += new EventHandler(checkboxAll_CheckedChanged); //把 checkboxAll 添加到 dataGridView1 中
dataGridView1.Controls.Add(chkOfAll);
}
}

DataGridView 动态绑定 CheckBox的更多相关文章

  1. Winform 中DataGridView的checkbox列,当修改checkbox状态时实时获得其状态值

    不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法: 主要用到了DataGridV ...

  2. Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中

    Solution1://In Fill DataGridViewEvent : DataGridViewCheckBoxColumn ChCol = new DataGridViewCheckBoxC ...

  3. C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常

    在DataGridView手动添加了CheckBox列;在窗体Show的时候,遇到一个错误:错误如下: DataGridView中发生一下异常:System.FormatException:单元格的F ...

  4. 关于datagridview中checkbox列在选中行的情况下无法操作值

    这几天做项目的时候碰到了个小问题,在datagridview中实现对checkbox列的全选和反选功能.代码如下              //全选              if (dataGrid ...

  5. DataGridView里CheckBox实现全选控制

    1. checkbox点击事件 private void myStyleDataGridView1_CellClick(object sender, DataGridViewCellEventArgs ...

  6. DataGridView 中CheckBox 获取状态

    /// <summary> /// /// </summary> /// <param name="sender"></param> ...

  7. Winform开发 如何为dataGridView 添加CheckBox列,并获取选中行

    //添加CheckBox列 DataGridViewCheckBoxColumn columncb = new DataGridViewCheckBoxColumn(); columncb.Heade ...

  8. DataGridView 使用CheckBox选中行

    在winform中使用checbox很多.上次那个项目里就用到了,写了一个不太好用,后来翻阅了一下微软提供的样码,我觉得有必要给大家分享一下. // This event handler manual ...

  9. DataGridView 中添加CheckBox和常用处理方式 .

    DataGridView 中添加CheckBox和常用处理方式 文章1 转载:http://blog.csdn.net/pinkey1987/article/details/5267934 DataG ...

随机推荐

  1. Git push时报错 ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to......

    今天在使用Git回退到之前某个版本的代码时,进行push时出现如下错误: ! [remote rejected] master -> master (pre-receive hook decli ...

  2. 基于xml配置springmvc

    controller关键代码 public class MenuController extends MultiActionController 方法: public ModelAndView lis ...

  3. SaltStack及Multi-Master介绍

    1.先说下SaltStack是啥? SaltStack是基于Python开发的一套C/S架构配置管理工具(功能不仅仅是配置管理,如使用salt-cloud配置AWS EC2实例),它的底层使用Zero ...

  4. 鼠标滚轮插件jQuery mousewheel

    delta的值是负的即-1,那么滚轮就是向下滚动.正的1就是向上. 插件方法: 1.为了监听滚轮事件,该插件引入了mousewheel事件.所以我们能够监听元素的mousewheel事件 2.该插件还 ...

  5. powerShell赋权限

    1.给网站赋权限 Set-SPUser –Identity “用户名” –AddPermissionLevel “参与讨论” –web “http://url” 2.给列表赋权限 $web = Get ...

  6. Python中flatten用法

    Python中flatten用法 原创 2014年04月16日 10:20:02 标签: Python / flatten 22667 一.用在数组 >>> a = [[1,3],[ ...

  7. GDI+学习之------ 画线、区域填充、写字

    <精通GDI编程>里的代码.在学习过程中对它加以总结,以防以后用到,全部代码都是在MFC 单文档中实现的,写在View::OnDraw(CDC */*pDC*/)中 画线/边框(Pen) ...

  8. MySQL-导入与导出

    CSV文件导入MySQL LOAD DATA INFILE语句允许您从文本文件读取数据,并将文件的数据快速导入数据库的表中. 导入文件操作之前,需要准备以下内容: 一.将要导入文件的数据对应的数据库表 ...

  9. 如何遍历newtonsoft.json的JObject里的JSON数据

    这种问题,在网上搜,居然没有答案,又是一堆垃圾,连谷歌上都搜不到.老实说,我喜欢这边的工作环境,可以上谷歌,毕竟是大公司,有自己的VPN .某组织整天禁这个禁那个,去年居然连谷歌都禁了,丧心病狂至此, ...

  10. JavaScript实现页面重载 - 535种方式

    location = location ... and a 534 other ways to reload the page with JavaScript location = location ...