最近在做一个C# winform的小东西,在用到向DataWindow 中添加新行.实现方法是右击菜单后弹出一窗体,新窗体上有一个DataGridView ,第一列是个DataGridViewCheckBoxColumn列.要求是选中checkbox的行添加到父窗体数据源中.现就判断哪些有选中的


foreach (DataGridViewRow dr in this.dataGridView1.Rows)
            {
                try
                {
                    //DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)dr.Cells[0];
                    //if ((bool)cbx.FormattedValue)
                    if(dr.Cells[0].Selected)
                    {
                        arrShiftCode.Add(dr.Cells[1].Value);
                        arrShiftGroup.Add(dr.Cells[2].Value);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

            }


以上是一开始这样写的,发现选中了多个,始终只有最后一个是True,其他的都是False.最后经查资料有如下写法即可      

            foreach (DataGridViewRow dr in this.dataGridView1.Rows)
            {
                try
                {
                    DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)dr.Cells[0];
                    if ((bool)cbx.FormattedValue)
                    {
                        arrShiftCode.Add(dr.Cells[1].Value);
                        arrShiftGroup.Add(dr.Cells[2].Value);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

posted on 2009-02-11 23:42  Smthhy  阅读(2193)  评论(2编辑  收藏  举报