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> & ...
随机推荐
- 错误检查roswtf
准备 在你开始本教程之前请确保roscore没在运行. 安装检查 roswtf 可以检查你的ROS系统并尝试发现问题,我们来试看: $ roscd $ roswtf 你应该会看到(各种详细的输出信息) ...
- maven3 下载列表
https://archive.apache.org/dist/maven/maven-3/ Parent Directory - 3.0.4/ 2012-09-11 09:37 - 3.0.5/ 2 ...
- 支持xhr浏览器:超时设定、加载事件、进度事件
各个浏览器虽然都支持xhr,但还是有些差异. 1.超时设定 IE8为xhr对象添加了一个timeout属性,表示请求在等待响应多少毫秒后就终止.再给timeout这只一个数值后,如果在规定的时间内浏览 ...
- 拼多多java后台笔试题目总结(20180830)
1.回合攻击问题 package com.hone.pdd; import java.util.Scanner; /** * 题目:模拟一个游戏场景,两种伤害,一种正常伤害,一种是先蓄力(也算一个回合 ...
- 最近邻规则分类(k-Nearest Neighbor )机器学习算法python实现
综述 Cover和Hart在1968年提出了最初的近邻算法 是分类(classification)算法 输入基于实例的学习(instance-based learning),惰性学习(lazy lea ...
- Jmeter不同线程组之间的变量引用
用过LoadRunner的小伙伴应该知道,它的脚本主要分为三个部分,即Login,Action,End三个模块.Login中一般是“初始化”环境所用,而Action模块主要做一些诸如压测的动作.举个例 ...
- POJ 1321 棋盘问题(非常经典的dfs,入门题)
棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 66277 Accepted: 31639 Descriptio ...
- mysql索引和外键
innodb外键: 1.CASCADE:从父表删除或更新会自动删除或更新子表中匹配的行 2.SET NULL:从父表删除或更新行,会设置子表中的外键列为NULL,但必须保证子表列没有指定NOT NUL ...
- MAC & Xcode 快捷键的使用
"磨刀不费砍材工",在熟悉了MAC 和 Xcode 快捷键后一定可以帮助我们更快捷方便的开发程序 MAC 快捷键: command + Q = 退出应用程序 command + c ...
- lua表类型
Lua的表的定义: typedef struct Table { CommonHeader; lu_byte flags; lu_byte lsizenode; /* log2 of size of ...