实现效果:

  

知识运用:

  DataGridViewCheckBoxColumn类

实现代码:

        private class Fruit
{
public int Price { get; set; }
public string Name { get; set; }
public bool ft;
} private List<Fruit> P_fruit;
private void Form1_Load(object sender, EventArgs e)
{
DataGridViewCheckBoxColumn dgvc = new DataGridViewCheckBoxColumn(); //创建列对象
dgvc.HeaderText = "状态"; //设置列标题
dataGridView1.Columns.Add(dgvc); //添加列
P_fruit = new List<Fruit>() //创建数据集合
{
new Fruit(){Price=21,Name="水蜜桃"},
new Fruit(){Price=33,Name="榴莲"},
new Fruit(){Price=24,Name="柑橘"},
new Fruit(){Price=22,Name="黄柠檬"},
new Fruit(){Price=21,Name="紫葡萄"}
};
dataGridView1.DataSource = P_fruit; //绑定数据集合
dataGridView1.Columns[0].Width = 50; //设置列宽
dataGridView1.Columns[1].Width = 140; //设置列宽
dataGridView1.Columns[2].Width = 150; //设置列宽
} private void btn_remove_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++) //遍历行集合
{
if (dataGridView1.Rows[i].Cells[0].Value != null && dataGridView1.Rows[i].Cells[1].Value != null &&
dataGridView1.Rows[i].Cells[2].Value != null) //判断值是否为空
{
if (Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value.ToString())) //判断是否选中项
{
P_fruit.RemoveAll( //标记集合中的指定项
(pp) =>
{
if (pp.Name == dataGridView1.Rows[i].Cells[2].Value.ToString() &&
pp.Price == Convert.ToSingle(dataGridView1.Rows[i].Cells[1].Value.ToString()))
pp.ft = true; //开始标记
return false; //不删除项
});
}
}
}
P_fruit.RemoveAll( //删除集合中的指定项
(pp) =>
{
return pp.ft;
});
dataGridView1.DataSource = null; //绑定为空
dataGridView1.DataSource = P_fruit; //绑定到数据集合
dataGridView1.Columns[0].Width = 50; //设置列宽
dataGridView1.Columns[1].Width = 140; //设置列宽
dataGridView1.Columns[2].Width = 150; //设置列宽
}

为DataGridView控件实现复选功能的更多相关文章

  1. DevExpress TreeList控件的复选框

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking TreeList控件能够同一时候显示树结构和其它数据列,即在一个列上建立父子关系展开或收缩,同一时 ...

  2. 获取ListControl控件中(复选框)CheckBox的状态

    原文地址:http://blog.chinaunix.net/uid-20680966-id-1896376.html 1 建立测试工程      新建一个对话框工程,并添加一个CListCtrl控件 ...

  3. jQueryMobile控件之复选框

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. [asp.net] 通过JS实现对treeview控件的复选框单选控制。

    前端JS代码: //识别不同的浏览器 function getTargetElement(evt) { var elem if (evt.target) { elem = (evt.target.no ...

  5. VS2010,VS2013 Datagridview控件的编辑列功能,弹窗界面被挤扁了

    搜了很久,没找到解决办法,在一个角落看到说要卸载Framework,实践后可以,发出来记一下. 解决办法: 发现自己电脑上多了Framework4.8,可能安装VS2013的时候自动安装的. 卸载了F ...

  6. Flex 扩展combobox 实现复选功能

    前段时间,老大召唤,给个任务,研究一下flex的combobox控件 实现复选功能(flex自带的combobox控件不可以复选),小兵能力有限,哪里可以扩展呀,网上看了别人写的,发现总是有点瑕疵(关 ...

  7. QT 创建一个具有复选功能的下拉列表控件

    最近研究了好多东西,前两天突然想做一个具有复选功能的下拉列表框.然后在网上"学习"了很久之后,终于发现了一个可以用的,特地发出来记录一下. 一.第一步肯定是先创建一个PROJECT ...

  8. 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现

    关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...

  9. Datagridview控件实现分页功能

    可以进行sql语句进行设置:      1.先新建一个窗体,一个DataGridView控件.两个label控件.两个Button控件   2.代码如下: using System; using Sy ...

随机推荐

  1. Linux+ant+jmeter+Jenkins接口持续集成自动化框架搭建

    Linux下安装ant并配置环境变量 1.从http://ant.apache.org 上下载tar.gz版ant 2.复制到/usr下 3.tar -vxzf apache-ant-1.10.1-b ...

  2. 文档公式编辑神器-Snip

    最近在重新学习统计学的一些基础知识,整理笔记的时候需要输入一些数学公式.从学校毕业之后,就没有在文档中插入过公式了.按照以前的经验,我把输入公式的方式分成两类. 所见即所得的方式,常见的就是微软wor ...

  3. conntrack-tools使用

    基础用法 系统配置 ### 开启流数据包统计(packets和bytes) # echo "net.netfilter.nf_conntrack_acct=1" >> ...

  4. lower_bound和upper_bound使用说明

    #include <bits/stdc++.h> using namespace std; int main() { ]; ;i<=;i++) { a[i] = i*; } ;i&l ...

  5. php 连接 memcached 并调用

    话不多说,上代码,自己看注释 <?php header("Content-type: text/html; charset=utf-8"); $mem = new Memca ...

  6. bzoj 3671: [Noi2014]随机数生成器【模拟+贪心】

    降智好题 前面随机部分按照题意模拟,然后字典序贪心,也就是记录每个值的位置从1~nm依次看能不能取,能取的话更新行的取值范围(它上面的行一定取的列小于等于这个数取的列,下面行大于等于) #includ ...

  7. sql server添加sa用户和密码

    昨天给网站“搬家”(更换服务器),我是在win7上安装的 sql server2012,安装过程很顺利,用“Windows 身份验证” 也可正常访问.但是用sa用户访问数据库出现了 错误:18456. ...

  8. SqlConnectionStringBuilder的用法

    SqlConnectionStringBuilder提供了一个很好的构建SQL连接字串的方式.不多说,见代码: SqlConnectionStringBuilder builder = new Sql ...

  9. Hive进阶_Hive数据查询

    简单查询和fetch task 简单查询:   简单查询的 fetch task 功能,从HDFS拉取,不用map reduce. 前两种配置,当前session有效.修改hive-site.xml永 ...

  10. 线程池(2)Executors.newFixedThreadPool

    例子: ExecutorService es = Executors.newFixedThreadPool(5); try { for (int i = 0; i < 20; i++) { Ru ...