DataGridView 复选框 操作大全
DataGridViewCheckBoxColumn dtCheck = new DataGridViewCheckBoxColumn();
dtCheck.DataPropertyName = "check";
dtCheck.HeaderText = "";
dataGridView1.Columns.Add(dtCheck);
dataGridView1.DataSource = DataTable;
以上代码 是在DataGridView中添加复选框
private void chkBox_CheckedChanged(object sender, EventArgs e)
{
if (this.chkBox.Checked == true)
{
for (int i = ; i < dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[].Value = true;
}
}
else
{
for (int i = ; i < dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells[].Value = false;
}
} // this.dataGridView1.Rows[i].Cells[0].Value =false; }
以上是一个CheckBox 单击事件 用作于 全选/反选
DataTable dt = (DataTable)dataGridView1.DataSource;
//使用方法
foreach(DataRow row in dt.Rows)
{
if (row["check"].ToString() == "True")
{
//处理方式
}
}
以上是后台代码操作过程 被选中的CheckBox 自己想怎么处理就怎么写
注:如果需要使复选框不能多选时,将DataGridView 的CellValueChanged事件和CurrentCellDirtyStateChanged事件
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv.IsCurrentCellDirty)
{
dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == )
{
DataGridView dgv = (DataGridView)sender;
DataTable dt = (DataTable)dgv.DataSource;
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv.Rows[e.RowIndex].Cells[];
bool value = (Boolean)checkCell.Value;
for (int i = ; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
if (i != e.RowIndex && value)
{
row["check"] = false;
}
}
dgv.Invalidate();
}
}
========================================================================================================
dataGridView1中复选框批量选中
1、dataGridView1.SelectionMode = 'FullRowSelect ' // dataGridView1 可以选中整行
2、添加一个contextMenuStrip1 控件 //右键菜单
选择 的name = 'SelectToolStripMenuItem'
3、dataGridView1添加CellMouseDown事件 代码如下
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= )
{
//若行已是选中状态就不再进行设置
if (dataGridView1.Rows[e.RowIndex].Selected == false)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[e.RowIndex].Selected = true;
}
//只选中一行时设置活动单元格
if (dataGridView1.SelectedRows.Count == )
{
dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
}
//弹出操作菜单
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
}
}
4、添加SelectToolStripMenuItem的Click 事件 代码如下
private void SelectToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (var item in this.dataGridView1.SelectedRows)
{
int i = ((System.Windows.Forms.DataGridViewBand)((DataGridViewRow)item)).Index; this.dataGridView1.Rows[i].Cells[].Value = true; }
}
这样 我们就完成批量选中复选框的功能了
DataGridView 复选框 操作大全的更多相关文章
- python之tkinter使用-复选框操作
# tkinter复选框操作 import tkinter as tk root = tk.Tk() root.title('问卷调查') root.geometry('220x80') # 设置窗口 ...
- C#:复选框操作类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- JS及Dom练习 | 模态对话框及复选框操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- seleniumu 3.0复选框操作(定位一组元素)
一般验证复选框是否可以选择点击常用到定位一组元素去循环遍历执行点击事件.但是有时候在不同的浏览器下可能会存在差异化的最终结果. 目前谷歌浏览器常常存在多次点击同一复选框,导致最终最后两项复选框均未被勾 ...
- 【jQuery】对于复选框操作的attr与prop
这个是在jQuery1.6版本号之后出现的鬼东西.受影响的主要有下拉列表select与复选框checkbox.众所周知.在jQuery中能够用attr()取出节点的属性,然而对于checkbox却不是 ...
- python selenium单/复选框操作
一.单选:radio 1.首先是定位选择框的位置 2.定位id,点击图标就可以了,代码如下(获取url地址方法:把上面源码粘贴到文本保存为.html后缀后用浏览器打开,在浏览器url地址栏复制出地址就 ...
- jQuery——复选框操作
学习jQuer对表单.表格操作的过程中,按照书上的例子发现一个问题: <!DOCTYPE html> <html> <head> <title>复选框应 ...
- DataGridView复选框实现全选功能,并取被选中的某行某列的值(三)
目标: 一.选中全选这个复选框,会选中第一列所有的复选框 拉过来一个CheckBox控件(CheckBox1)覆盖在第一列的标题上,文本值:全选 方法:双击上面拉的CheckBox控件,进入其事件 p ...
- selenium之复选框操作
HTML源码: <!DOCTYPE html> <div lang="en"></div></div> <head> & ...
随机推荐
- 知乎live考研数学冲刺135+资料分享
前言 各位学弟学妹,您好,live中本来是给出了我的邮箱,通过邮箱来获取资料,但是没有想到,后来我每天打开邮箱,都是需要回复的邮件,少则一两封,多则四五封,每天如此,也是一个比较繁琐费时的方式.我决定 ...
- Spring源码分析(二十二)功能扩展
摘要: 本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 目录 一.增加SPEL语言的支持 二.增加属性注册编辑器 1. 使用自 ...
- utf-8 转码--网址转码
NSString *name = @"联通测试"; NSString *utfName = [name stringByAddingPercentEncodingWithAllow ...
- 404 Note Found 队-Beta2
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...
- CAN网要不要共地?
重要:CAN网要不要共地? 因为CAN传输采用差分传输的方式,即使不共地,部分情况下仍然能传输数据,但是本人以实际的经验告诉你们,一定要共地! 1. 不共地会引入共模干扰,轻则影响正常 ...
- 笔记:long、longlong、int、float、NSString相互转换
NSString *"; // 1.字符串转int int intString = [string intValue]; // 2.int转字符串 NSString *stringInt = ...
- Bluebox Security最新提报Android漏洞的初步探讨(转)
Bluebox Security在7月3号的时候,在官网上发布了一个据称99% Android机器都有的一个漏洞.国内最早在4号开始有媒体报道,并持续升温.该漏洞可使攻击者在不更改Android应用 ...
- 单调性优化DP
单调性优化DP Tags:动态规划 作业部落链接 一.概述 裸的DP过不了,怎么办? 通常会想到单调性优化 单调队列优化 斜率优化 决策单调性 二.题目 [x] 洛谷 P2120 [ZJOI2007] ...
- mfc 带参数的构造函数
知识点 默认的构造函数 带参数的构造函数 重载构造函数 一.默认的构造函数 二.带参数的构造函数 三.重载构造函数 class Tdate { public: int year;//年 int mon ...
- 【转载】Free Lunch is Over(免费午餐已经结束了)
原文:Free Lunch is Over(免费午餐已经结束了) 微软C++大师Herb Sutter的文章<The Free Lunch Is Over>翻译,以前自己也经常翻译,但是都 ...