当前位置:编程学习 > C#/ASP.NET >>

关于Datagriview checkbox选中问题


各位  我想让图片中最后一列的checkbox选中  请问怎么弄啊 
以下是我的代码
            DataGridViewCheckBoxColumn com = new DataGridViewCheckBoxColumn();
            com.Name = "选择";
            com.HeaderText = "选择";            
            DataTable tb2 = new DataTable();
            tb2.Columns.Add("ID");
            tb2.Columns.Add("课程名称");
            tb2.Columns.Add("学分");
            int count = dataGridView1.ColumnCount;

            com.Name = "choose";
            com.HeaderText = "选择";
            foreach (var bb in db.T_Course)
            {
                DataRow dr = tb2.NewRow();
                dr["ID"] = bb.ID;
                dr["课程名称"] = bb.NAME;
                dr["学分"] = bb.CREDIT;       
                tb2.Rows.Add(dr);           
            }
            dataGridView1.DataSource = tb2;
            dataGridView1.Columns.Add(com);
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                ((DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells["choose"]).Selected=true;
            }{请问这里是这样设置吗 我只是想设置为选中状态  }
             --------------------编程问答-------------------- dataGridView1.Rows[i].Cells["choose"]).Value = true; --------------------编程问答-------------------- 不是给你回答过了吗
http://bbs.csdn.net/topics/390668021 --------------------编程问答-------------------- 还是不行啊 大神 --------------------编程问答--------------------
引用 2 楼 bf6543 的回复:
不是给你回答过了吗
http://bbs.csdn.net/topics/390668021

你那个=(i%2)是什么意思啊 而且我试了 还是不行  不知道为什么。 --------------------编程问答-------------------- Selected表示单元格选中,就是你上面图片里那个“111”单元格那种蓝色效果
把Selected改成Value就可以了; --------------------编程问答--------------------
引用 4 楼 KOKO1788 的回复:
Quote: 引用 2 楼 bf6543 的回复:

不是给你回答过了吗
http://bbs.csdn.net/topics/390668021

你那个=(i%2)是什么意思啊 而且我试了 还是不行  不知道为什么。

你直接写true,false也可以; --------------------编程问答--------------------
引用 6 楼 bf6543 的回复:
Quote: 引用 4 楼 KOKO1788 的回复:

Quote: 引用 2 楼 bf6543 的回复:

不是给你回答过了吗
http://bbs.csdn.net/topics/390668021

你那个=(i%2)是什么意思啊 而且我试了 还是不行  不知道为什么。

你直接写true,false也可以;

我现在改用了value=true 啊  就是选中不了! --------------------编程问答--------------------

dataGridview.Rows[i].Cells[3].Value = 1;

这样? --------------------编程问答-------------------- 记得发出去的帖子要常结,不然很多人都懒得鸟你 --------------------编程问答--------------------
引用 9 楼 foreverwoyou 的回复:
记得发出去的帖子要常结,不然很多人都懒得鸟你

长结是什么意思啊  不好意思我是新手 就是结贴吗 停止询问吗 
不好意思 感谢回复 --------------------编程问答--------------------
引用 9 楼 foreverwoyou 的回复:
记得发出去的帖子要常结,不然很多人都懒得鸟你

value=1也不行  唉 麻烦各位大神了 小弟不才 非常感谢大家的回复
--------------------编程问答--------------------

     for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridview1.Rows[i].Cells[3].Value = 1;
            }


这样怎么可能会不行哪? --------------------编程问答-------------------- 试了一下你的代码,改为Value 正常选中。这段代码本身应该没问题,
你还在其他地方写了什么对 dataGridview1的操作吗
--------------------编程问答--------------------
引用 12 楼 foreverwoyou 的回复:

     for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridview1.Rows[i].Cells[3].Value = 1;
            }


这样怎么可能会不行哪?

大神 你说的办法没错  我试过了 
不过就是有这么一个问题 我是在把其他列都注释了的情况下是可以的
因为在代码中你也可以看到 dataGridView1.DataSource = tb2;  我绑定了之后就不行了
所以怎么样让我这个checkbox也一样绑定在tb2中呢 --------------------编程问答--------------------
引用 13 楼 bf6543 的回复:
试了一下你的代码,改为Value 正常选中。这段代码本身应该没问题,
你还在其他地方写了什么对 dataGridview1的操作吗

            DataTable dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("课程名称");
            dt.Columns.Add("学分");
            List<string> list = new List<string>();
            foreach (var ii in db.T_Student.Find(per_id).T_Course)
            {
                DataRow datarow = dt.NewRow();               
                datarow["ID"] = ii.ID;
                datarow["课程名称"] = db.T_Course.Find(ii.ID).NAME;
                datarow["学分"] = db.T_Course.Find(ii.ID).CREDIT;
                list.Add(db.T_Course.Find(ii.ID).ID);
              dt.Rows.Add(datarow);
            }
            dataGridView2.DataSource = dt;

            DataGridViewCheckBoxColumn com = new DataGridViewCheckBoxColumn();
            com.Name = "choose";
            com.HeaderText = "选择";
            DataTable tb2 = new DataTable();
            tb2.Columns.Add("ID");
            tb2.Columns.Add("课程名称");
            tb2.Columns.Add("学分");
            int count = dataGridView1.ColumnCount;


            foreach (var bb in db.T_Course)
            {
                DataRow dr = tb2.NewRow();
                dr["ID"] = bb.ID;
                dr["课程名称"] = bb.NAME;
                dr["学分"] = bb.CREDIT;
                tb2.Rows.Add(dr);
            }

          
            dataGridView1.Columns.Add(com);
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
            dataGridView1.Rows[i].Cells["choose"].Value=true;      
            }
            dataGridView1.DataSource = tb2;


就是我先定义了几个列  是datatable的绑定
然后我是新增了一个列combox 是在datagriview中添加的  并没有绑定在datatable中
而最后dataGridView1.DataSource = tb2;我是绑定在datatable中了  所以说之前一直说选中不了就是这个原因吧
然后我把那些列都删了 就可以选中了 就是只有一个combox列了
问题是现在该怎么弄呢 --------------------编程问答--------------------
引用 14 楼 KOKO1788 的回复:
Quote: 引用 12 楼 foreverwoyou 的回复:


     for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridview1.Rows[i].Cells[3].Value = 1;
            }


这样怎么可能会不行哪?

大神 你说的办法没错  我试过了 
不过就是有这么一个问题 我是在把其他列都注释了的情况下是可以的
因为在代码中你也可以看到 dataGridView1.DataSource = tb2;  我绑定了之后就不行了
所以怎么样让我这个checkbox也一样绑定在tb2中呢


这跟绑定tb2没什么关系吧。

--------------------编程问答--------------------
引用 16 楼 foreverwoyou 的回复:
Quote: 引用 14 楼 KOKO1788 的回复:

Quote: 引用 12 楼 foreverwoyou 的回复:


     for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridview1.Rows[i].Cells[3].Value = 1;
            }


这样怎么可能会不行哪?

大神 你说的办法没错  我试过了 
不过就是有这么一个问题 我是在把其他列都注释了的情况下是可以的
因为在代码中你也可以看到 dataGridView1.DataSource = tb2;  我绑定了之后就不行了
所以怎么样让我这个checkbox也一样绑定在tb2中呢


这跟绑定tb2没什么关系吧。


我也是觉得没关系  前3个列绑定之后 我再add进去一个checkbox  
value=true 是肯定对的  我单独拿出来试过是可以被选中的
但是有其他数据一绑定之后就能被被选中了 
我也试过dataGridview1.Rows[i].Cells[2].Value = 1; {第二列的数据全部为1了}
就是说是可以的  但是可能设置dataGridview1.Rows[i].Cells[3].Value = 1;  就不是value=1 就可以把那个选择框选中了吧   --------------------编程问答--------------------

//test
        private void Form1_Load(object sender, EventArgs e)
        {
            DataGridViewCheckBoxColumn com = new DataGridViewCheckBoxColumn();
            com.Name = "选择";
            com.HeaderText = "选择";
            DataTable tb2 = new DataTable();
            tb2.Columns.Add("ID");
            tb2.Columns.Add("课程名称");
            tb2.Columns.Add("学分");
            DataRow dr = tb2.NewRow();
            object[] objs={"001","english","90"};
            dr.ItemArray = objs;
            tb2.Rows.Add(dr);


            dataGridView1.DataSource = tb2;
            dataGridView1.Columns.Add(com);
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Cells[3].Value = 1;
            }
        }
--------------------编程问答--------------------
引用 17 楼 KOKO1788 的回复:
Quote: 引用 16 楼 foreverwoyou 的回复:

Quote: 引用 14 楼 KOKO1788 的回复:

Quote: 引用 12 楼 foreverwoyou 的回复:


     for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridview1.Rows[i].Cells[3].Value = 1;
            }


这样怎么可能会不行哪?

大神 你说的办法没错  我试过了 
不过就是有这么一个问题 我是在把其他列都注释了的情况下是可以的
因为在代码中你也可以看到 dataGridView1.DataSource = tb2;  我绑定了之后就不行了
所以怎么样让我这个checkbox也一样绑定在tb2中呢


这跟绑定tb2没什么关系吧。


我也是觉得没关系  前3个列绑定之后 我再add进去一个checkbox  
value=true 是肯定对的  我单独拿出来试过是可以被选中的
但是有其他数据一绑定之后就能被被选中了 
我也试过dataGridview1.Rows[i].Cells[2].Value = 1; {第二列的数据全部为1了}
就是说是可以的  但是可能设置dataGridview1.Rows[i].Cells[3].Value = 1;  就不是value=1 就可以把那个选择框选中了吧  

只是举了个例子而已,你要自己设置哪一列啊 --------------------编程问答--------------------
引用 18 楼 foreverwoyou 的回复:

//test
        private void Form1_Load(object sender, EventArgs e)
        {
            DataGridViewCheckBoxColumn com = new DataGridViewCheckBoxColumn();
            com.Name = "选择";
            com.HeaderText = "选择";
            DataTable tb2 = new DataTable();
            tb2.Columns.Add("ID");
            tb2.Columns.Add("课程名称");
            tb2.Columns.Add("学分");
            DataRow dr = tb2.NewRow();
            object[] objs={"001","english","90"};
            dr.ItemArray = objs;
            tb2.Rows.Add(dr);


            dataGridView1.DataSource = tb2;
            dataGridView1.Columns.Add(com);
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Cells[3].Value = 1;
            }
        }

首先非常感谢你 亲自帮我写了一段东西
然后我直接拿你的代码新键了一个datagriview 去运行了 发现还是选中不了
不知道你运行的时候能否被选中 --------------------编程问答--------------------
引用 20 楼 KOKO1788 的回复:
Quote: 引用 18 楼 foreverwoyou 的回复:


//test
        private void Form1_Load(object sender, EventArgs e)
        {
            DataGridViewCheckBoxColumn com = new DataGridViewCheckBoxColumn();
            com.Name = "选择";
            com.HeaderText = "选择";
            DataTable tb2 = new DataTable();
            tb2.Columns.Add("ID");
            tb2.Columns.Add("课程名称");
            tb2.Columns.Add("学分");
            DataRow dr = tb2.NewRow();
            object[] objs={"001","english","90"};
            dr.ItemArray = objs;
            tb2.Rows.Add(dr);


            dataGridView1.DataSource = tb2;
            dataGridView1.Columns.Add(com);
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Cells[3].Value = 1;
            }
        }

首先非常感谢你 亲自帮我写了一段东西
然后我直接拿你的代码新键了一个datagriview 去运行了 发现还是选中不了
不知道你运行的时候能否被选中

当然可以啊 --------------------编程问答--------------------
引用 21 楼 foreverwoyou 的回复:
Quote: 引用 20 楼 KOKO1788 的回复:

Quote: 引用 18 楼 foreverwoyou 的回复:


//test
        private void Form1_Load(object sender, EventArgs e)
        {
            DataGridViewCheckBoxColumn com = new DataGridViewCheckBoxColumn();
            com.Name = "选择";
            com.HeaderText = "选择";
            DataTable tb2 = new DataTable();
            tb2.Columns.Add("ID");
            tb2.Columns.Add("课程名称");
            tb2.Columns.Add("学分");
            DataRow dr = tb2.NewRow();
            object[] objs={"001","english","90"};
            dr.ItemArray = objs;
            tb2.Rows.Add(dr);


            dataGridView1.DataSource = tb2;
            dataGridView1.Columns.Add(com);
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Cells[3].Value = 1;
            }
        }

首先非常感谢你 亲自帮我写了一段东西
然后我直接拿你的代码新键了一个datagriview 去运行了 发现还是选中不了
不知道你运行的时候能否被选中

当然可以啊


那就是我的问题了 唉 麻烦你了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,