如何取DataGridViewCheckBoxCell值

今到遇到这样的应用,主档datagridview要通过点选Checkbox列,实时计算Checkbox=true的所有明细金额合计,


网上有提到使用EditedFormattedValue和FormattedValue的值的判断,但使用起来还是麻烦,要做判断,于是想到用点选后马上结束编辑状态,结果还变好用的,上代码,以备后用:

 /// <summary>
        /// 选择内容
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //取当前datagridview
            DataGridView dgv = (DataGridView)sender;
            //这句很关键,结束编辑状态
            dgv.EndEdit();
            //选择列判断
            if (dgv.Columns[e.ColumnIndex].DataPropertyName.ToLower() == "selcol")
            {
                string idlist = "", pk = "id";
                DataGridViewCheckBoxCell dgchk=null;
                foreach (DataGridViewRow item in dgv.Rows)
                {
                    dgchk = (DataGridViewCheckBoxCell)item.Cells["selcol"];
                    //判断选择列是否已被选
                    if ((bool)item.Cells["selcol"].Value)
                    {
                        idlist += idlist == "" ? item.Cells[pk].Value.ToString() : "," + item.Cells[pk].Value.ToString();
                    }
                }
                //计算选择的明细金额
                float selprice = Util.ShowVoiceMoney(idlist,pk, "iMoney", "PU_arrivalVouchs");
                lb3.Text = string.Format("已选金额:{0}", selprice.ToString("F2"));
                lb_rate.Text = string.Format("已选金额比例:{0}%", AllPrice == 0 ? "0.00" : (selprice / AllPrice * 100).ToString("F2"));
            }
        }



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值