博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何获取datagridview中checkbox选中的多行数据

Posted on 2011-04-08 23:26  moss_tan_jun  阅读(6166)  评论(0编辑  收藏  举报

开发(winform)时碰到这个问题 C# 怎样判断 datagridview 中的checkbox列是否被选中,错误原因都C#对类型判断相当严格,为了避免大家以后多走弯路,把我的思路和大家说一下,希望对大家有帮助。

     for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if ((bool)dataGridView1.Rows[i].Cells[0].EditedFormattedValue==true)
                {
                    //TODO
                }
               
            }

===================================================================================

private void PrintInFo() {
   try
     {
        int count = 0;
        //用于保存选中的checkbox数量
        //DG_List为datagridview控件
        for (int i = 0; i < DG_List.RowCount; i++)
        {
            if (DG_List.Rows[i].Cells  [0].EditedFormattedValue.ToString() == "True")
            //这里判断复选框是否选中
            {
                count++;
            }
         }
         if (count == 0)
         {
              MessageBox.Show("请至少选择一条数据!", "提示");
              return;
         }
         else
         {
              if (MessageBox.Show(this, "您要更新数据么?", "提示", MessageBoxButtons.YesNo,    MessageBoxIcon.Information).ToString() == "Yes")
              {
                   for (int i = 0; i < count; i++)
                   {
                       ps.Pexcute(" update cf_prj_certi set FIsPrint='"+number+"' where fid='" +  DG_List.Rows[i].Cells["fnn"].Value.ToString() + "'"); //执行SQL
                   }
               } else
                {
                    return;
                }
          }
     } catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        } this.ShowInfo(); //重新绑定datagridview
}

 

=========================================

点击dataGridView1事件中的CellMouseClick 事件

private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if(e.ColumnIndex==6)
    {
        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = true;
    }
}