DataGridView 动态绑定 CheckBox
下面演示如何在 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的更多相关文章
- Winform 中DataGridView的checkbox列,当修改checkbox状态时实时获得其状态值
不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法: 主要用到了DataGridV ...
- Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中
Solution1://In Fill DataGridViewEvent : DataGridViewCheckBoxColumn ChCol = new DataGridViewCheckBoxC ...
- C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常
在DataGridView手动添加了CheckBox列;在窗体Show的时候,遇到一个错误:错误如下: DataGridView中发生一下异常:System.FormatException:单元格的F ...
- 关于datagridview中checkbox列在选中行的情况下无法操作值
这几天做项目的时候碰到了个小问题,在datagridview中实现对checkbox列的全选和反选功能.代码如下 //全选 if (dataGrid ...
- DataGridView里CheckBox实现全选控制
1. checkbox点击事件 private void myStyleDataGridView1_CellClick(object sender, DataGridViewCellEventArgs ...
- DataGridView 中CheckBox 获取状态
/// <summary> /// /// </summary> /// <param name="sender"></param> ...
- Winform开发 如何为dataGridView 添加CheckBox列,并获取选中行
//添加CheckBox列 DataGridViewCheckBoxColumn columncb = new DataGridViewCheckBoxColumn(); columncb.Heade ...
- DataGridView 使用CheckBox选中行
在winform中使用checbox很多.上次那个项目里就用到了,写了一个不太好用,后来翻阅了一下微软提供的样码,我觉得有必要给大家分享一下. // This event handler manual ...
- DataGridView 中添加CheckBox和常用处理方式 .
DataGridView 中添加CheckBox和常用处理方式 文章1 转载:http://blog.csdn.net/pinkey1987/article/details/5267934 DataG ...
随机推荐
- Linux下汇编语言学习笔记25 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- 网易2018校招 合唱 DP
时间限制:2秒 空间限制:131072K 小Q和牛博士合唱一首歌曲,这首歌曲由n个音调组成,每个音调由一个正整数表示.对于每个音调要么由小Q演唱要么由牛博士演唱,对于一系列音调演唱的难度等于所有相 ...
- [bzoj3991][SDOI2015]寻宝游戏_树链的并_倍增lca_平衡树set
寻宝游戏 bzoj-3991 SDOI-2015 题目大意:题目链接. 注释:略. 想法:我们发现如果给定了一些点有宝物的话那么答案就是树链的并. 树链的并的求法就是把所有点按照$dfs$序排序然后相 ...
- HDU——3072 Intelligence System
Intelligence System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 洛谷 P1318 积水面积
P1318 积水面积 题目描述 一组正整数,分别表示由正方体迭起的柱子的高度.若某高度值为x,表示由x个正立方的方块迭起(如下图,0<=x<=5000).找出所有可能积水的地方(图中蓝色部 ...
- Centos7 samba 匿名共享 简单config
安装Samba yum install samba samba-client samba-common -y 备份原始的Samba配置文件: mv /etc/samba/smb.conf /etc/s ...
- Node后台使用mysql并开启事务
如题:node后台使用mysql数据库,并使用事务来管理数据库操作. 这里主要讲一个事务的封装并写了一个INSERT 插入操作. code: 基础code: db.config.js const my ...
- cocos2d-x 求相交矩阵
cocos2d-x有推断矩阵相交的方法 CCRect::intersectsRect(CCRect& rect)但可惜没有提供求两个相交矩阵的方法,我作了总结,代码例如以下: CCRect T ...
- 8148和8127中的ezsdk和dvrsdk
http://www.dajudeng.com/d2012081009b8a9d5de87101f69f31952c.html
- Zend Studio如何调试?
1.安装Zend Studio之前,本机已安装Apache2.如果使用Apache2作为服务器 Window-Preferences-Php-Php Servers 配置好 URL和Server Ro ...