码迷,mamicode.com
首页 > Windows程序 > 详细

为DataGridView控件实现复选功能

时间:2019-01-02 01:23:11      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:event   技术分享   技术   boolean   oid   str   header   tostring   设置   

实现效果:

  技术分享图片

知识运用:

  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控件实现复选功能

标签:event   技术分享   技术   boolean   oid   str   header   tostring   设置   

原文地址:https://www.cnblogs.com/feiyucha/p/10206656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!