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

C# winform datagridview 复选

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

在Web程序中数据源绑定控件GridView中有模板列,而要获取其中的复选框是否选中以及复选框所在的行是很简单的,经典代码如下:
     for(int i=0;i<gvList.Rows.Count;i++)
     {
         if(((CheckBox)gvList.Rows[i].Cells[0].FindControl("chkID")).Checked)
         { }
     }
         但是在WinForm中的DataGridView控件却不能这样来做,DataGridView控件根本没有自由模板列,有的是6个内置模板列,而复选框正是其中之一。要获得复选框是否选中以及选中行对应的其他值是不能按照Web程序中的这种方式来实现的,而是需要通过DataGridView控件中Cells单元格的Value属性来判断的。

        (WinForm中DataGridView控件通过复选框实现多条记录的删除)代码如下:
         private void btnDelete_Click(object sender, EventArgs e)
         {
             string strNames = "您选择的是:";
             for(int i=0;i<dgvList.Rows.Count;i++)
             {
                 if (dgvList.Rows[i].Cells[0].Value != null) //判断该行的复选框是否存在
                 {
                     if (dgvList.Rows[i].Cells[0].Value.ToString() == "True") //判断该复选框是否被选中
                     {
                         strNames += dgvList.Rows[i].Cells[2].Value.ToString() + "   ";
                     }
                 }
             }
             MessageBox.Show(strNames, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         运行结果如图所示:

 转载自网络,来源不明!!