DataGridView 复选框 操作大全
1 DataGridViewCheckBoxColumn dtCheck = new DataGridViewCheckBoxColumn();
2 dtCheck.DataPropertyName = "check";
3 dtCheck.HeaderText = "";
4 dataGridView1.Columns.Add(dtCheck);
5 dataGridView1.DataSource = DataTable; 6
以上代码 是在DataGridView中添加复选框
1 private void chkBox_CheckedChanged(object sender, EventArgs e) 2 { 3 if (this.chkBox.Checked == true) 4 { 5 for (int i = 0; i < dataGridView1.Rows.Count; i++) 6 { 7 this.dataGridView1.Rows[i].Cells[0].Value = true; 8 } 9 } 10 else 11 { 12 for (int i = 0; i < dataGridView1.Rows.Count; i++) 13 { 14 this.dataGridView1.Rows[i].Cells[0].Value = false; 15 } 16 } // this.dataGridView1.Rows[i].Cells[0].Value =false; 17 18 }
以上是一个CheckBox 单击事件 用作于 全选/反选
1 DataTable dt = (DataTable)dataGridView1.DataSource; 2 //使用方法 3 foreach(DataRow row in dt.Rows) 4 { 5 if (row["check"].ToString() == "True") 6 { 7 //处理方式 8 } 9 }
以上是后台代码操作过程 被选中的CheckBox 自己想怎么处理就怎么写
注:如果需要使复选框不能多选时,将DataGridView 的CellValueChanged事件和CurrentCellDirtyStateChanged事件

1 private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e) 2 { 3 DataGridView dgv = (DataGridView)sender; 4 if (dgv.IsCurrentCellDirty) 5 { 6 dgv.CommitEdit(DataGridViewDataErrorContexts.Commit); 7 } 8 } 9 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 10 { 11 if (e.ColumnIndex == 0) 12 { 13 DataGridView dgv = (DataGridView)sender; 14 DataTable dt = (DataTable)dgv.DataSource; 15 DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv.Rows[e.RowIndex].Cells[0]; 16 bool value = (Boolean)checkCell.Value; 17 for (int i = 0; i < dt.Rows.Count; i++) 18 { 19 DataRow row = dt.Rows[i]; 20 if (i != e.RowIndex && value) 21 { 22 row["check"] = false; 23 } 24 } 25 dgv.Invalidate(); 26 } 27 }
========================================================================================================
dataGridView1中复选框批量选中
1、dataGridView1.SelectionMode = 'FullRowSelect ' // dataGridView1 可以选中整行
2、添加一个contextMenuStrip1 控件 //右键菜单
选择 的name = 'SelectToolStripMenuItem'
3、dataGridView1添加CellMouseDown事件 代码如下
1 private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) 2 { 3 if (e.Button == MouseButtons.Right) 4 { 5 if (e.RowIndex >= 0) 6 { 7 //若行已是选中状态就不再进行设置 8 if (dataGridView1.Rows[e.RowIndex].Selected == false) 9 { 10 dataGridView1.ClearSelection(); 11 dataGridView1.Rows[e.RowIndex].Selected = true; 12 } 13 //只选中一行时设置活动单元格 14 if (dataGridView1.SelectedRows.Count == 1) 15 { 16 dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; 17 } 18 //弹出操作菜单 19 contextMenuStrip1.Show(MousePosition.X, MousePosition.Y); 20 } 21 } 22 }
4、添加SelectToolStripMenuItem的Click 事件 代码如下
1 private void SelectToolStripMenuItem_Click(object sender, EventArgs e) 2 { 3 foreach (var item in this.dataGridView1.SelectedRows) 4 { 5 int i = ((System.Windows.Forms.DataGridViewBand)((DataGridViewRow)item)).Index; 6 7 this.dataGridView1.Rows[i].Cells[0].Value = true; 8 9 } 10 }
这样 我们就完成批量选中复选框的功能了
作者:Elite.net
出处:http://www.cnblogs.com/yhyjy/
新浪微博:http://weibo.com/u/2709913775
世上本无垃圾,所谓垃圾是你放错了地方!
每天积累一点点,那么理想便会距离我们越来越近!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/yhyjy/
新浪微博:http://weibo.com/u/2709913775
世上本无垃圾,所谓垃圾是你放错了地方!
每天积累一点点,那么理想便会距离我们越来越近!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?