为DataGridView控件实现复选功能
实现效果:
知识运用:
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控件实现复选功能的更多相关文章
- DevExpress TreeList控件的复选框
作者:jiankunking 出处:http://blog.csdn.net/jiankunking TreeList控件能够同一时候显示树结构和其它数据列,即在一个列上建立父子关系展开或收缩,同一时 ...
- 获取ListControl控件中(复选框)CheckBox的状态
原文地址:http://blog.chinaunix.net/uid-20680966-id-1896376.html 1 建立测试工程 新建一个对话框工程,并添加一个CListCtrl控件 ...
- jQueryMobile控件之复选框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [asp.net] 通过JS实现对treeview控件的复选框单选控制。
前端JS代码: //识别不同的浏览器 function getTargetElement(evt) { var elem if (evt.target) { elem = (evt.target.no ...
- VS2010,VS2013 Datagridview控件的编辑列功能,弹窗界面被挤扁了
搜了很久,没找到解决办法,在一个角落看到说要卸载Framework,实践后可以,发出来记一下. 解决办法: 发现自己电脑上多了Framework4.8,可能安装VS2013的时候自动安装的. 卸载了F ...
- Flex 扩展combobox 实现复选功能
前段时间,老大召唤,给个任务,研究一下flex的combobox控件 实现复选功能(flex自带的combobox控件不可以复选),小兵能力有限,哪里可以扩展呀,网上看了别人写的,发现总是有点瑕疵(关 ...
- QT 创建一个具有复选功能的下拉列表控件
最近研究了好多东西,前两天突然想做一个具有复选功能的下拉列表框.然后在网上"学习"了很久之后,终于发现了一个可以用的,特地发出来记录一下. 一.第一步肯定是先创建一个PROJECT ...
- 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现
关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...
- Datagridview控件实现分页功能
可以进行sql语句进行设置: 1.先新建一个窗体,一个DataGridView控件.两个label控件.两个Button控件 2.代码如下: using System; using Sy ...
随机推荐
- C#——传值参数(3)
上篇文章我与大家共同学习了 值参数——引用类型这次与大家共同学习 传值参数--引用类型,不创建新对象,只操作对象这是个思维导图:我们仍需记住:1.值参数创建变量的副本 2.对值参数的改变不会影响变量的 ...
- ubuntu18.04安装opencv 3.4.1
github 地址: https://github.com/opencv/opencv 安装依赖 sudo apt-get install build-essential sudo apt--dev ...
- 推荐一款让你纵横Github的读码神器
当我们想深入了解一个开源项目的时候,通常我们有以下几种姿势: 懒汉型 通过Web的方式,逐个的点击页面寻找和查看具体的源码内容. 优点:不依赖任何工具,无须任何额外的操作 缺点:效率低下,查找文件不便 ...
- 【Java】NIO中Channel的注册源码分析
Channel的注册是在SelectableChannel中定义的: public abstract SelectionKey register(Selector sel, int ops, Obje ...
- Silhouette-Outlined Diffuse
http://wiki.unity3d.com/index.php/Silhouette-Outlined_Diffuse A variant of Outlined Diffuse 3 showin ...
- C# Obsolete(已弃用方法属性)
class Realization : Interface { /// <summary> /// 已弃用的方法,Obsolete第二个参数设置为true,调用此方法会产生警告并引起编译器 ...
- BZOJ 1977: [BeiJing2010组队]次小生成树 Tree 倍增 最小生成树
好吧我太菜了又调了一晚上...QAQ 先跑出最小生成树,标记树边,再用树上倍增的思路,预处理出: f[u][i] :距离u为2^i的祖先 h[u][i][0/1] :距u点在2^i范围内的最长边和次长 ...
- Codeforces Round #561 (Div. 2) C. A Tale of Two Lands
链接:https://codeforces.com/contest/1166/problem/C 题意: The legend of the foundation of Vectorland talk ...
- php:两个文件夹递归地比较,没有的文件自动复制过去
仿站时,通常默认模板文件和新的模板文件大部分都是一样的,下面代码可以用于比较文件是否缺失(和默认模板做比较) 如果缺失自动复制过去~~ <?php /** * used:新模板和default模 ...
- Linux .Net Core
Linux .Net Core自宿主应用程序瘦身记 一,.NET Core 自宿主应用程序个头有点大 发布.NET Core应用程序有两个方式,一种是“便携式”,一种是“自宿主式”.便携式发布时,目标 ...