• C# WinForm DataGirlView 单元格编辑


    看到上面的图,很明显就是让在DataGrilView中修改消费次数的,这就要求我们要在DataGrilView可以更新数据,那么怎么做到呢,其实很简单

    首先、dataGrilView要启用编辑才可以

    其次、看看下面的代码

      private void btnOk_Click(object sender, EventArgs e)
            {
                Pays objPay = new Pays();
                if (this.ValidateData())
                {
                    bool fig = false;
                    int count = Convert.ToInt32(dgvPayDetails.Rows.Count.ToString());
    
                    objPay.PayID = this.txtCode.Text.Trim();
                    objPay.MemberId = this.txtClient.Text.Trim();
                    if (objPay.MemberId == "")
                    {
                        objPay.MemberId = "0";
                    }
                    objPay.EmpID1 = int.Parse(this.cboEmp1.SelectedValue.ToString());
                    objPay.EmpID2 = int.Parse(this.cboEmp2.SelectedValue.ToString());
                    objPay.EmpID3 = int.Parse(this.cboEmp3.SelectedValue.ToString());
                    objPay.Status = 1;
                    objPay.Money = 0M;
                    objPay.Remark = this.txtRemark.Text.Trim();
                    objPay.PayDate = DateTime.Parse(this.dtpPayDate.Value.Date.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                    if (objPay.InsertCountPay() > 0)//新增消费单据
                    {
                        for (int i = 0; i < count; i++)
                        {
                            //如果DataGridView是可编辑的,将数据提交,否则处于编辑状态的行无法取到
                            dgvPayDetails.EndEdit();
                            DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgvPayDetails.Rows[i].Cells["SelIndex"];
                            Boolean flag = Convert.ToBoolean(checkCell.Value);
                            if (flag == true)     //查找被选择的数据行
                            {
                                //从 DATAGRIDVIEW 中获取数据项
                                fig = true;
                                string z_zcode = dgvPayDetails.Rows[i].Cells[5].Value.ToString().Trim();
                                string mid = txtClient.Text;
                                string sid = dgvPayDetails.Rows[i].Cells[1].Value.ToString();
                                TradeCount model = new TradeCount().GetTradeCountByShopId(sid, mid);
                                model.memberId = mid;
                                model.userCount -= Convert.ToInt32(z_zcode);
    
                                model.UpdateTradeCount();
                                LoadTradeCount();
                            }
                        }
                        if (fig == false)
                        {
                            MessageBox.Show("请选择要消费的项目", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                    }
    
    
                    DialogResult = DialogResult.OK;
                    this.Close();
    
                }
              
            }
    
         
    
            private void dgvPayDetails_CellClick(object sender, DataGridViewCellEventArgs e)
            {
               
            }
    
            private void dgvPayDetails_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                dgvPayDetails.EndEdit();
                DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgvPayDetails.Rows[e.RowIndex].Cells["SelIndex"];
                Boolean flag = Convert.ToBoolean(checkCell.Value);
                if (flag == true)//查找被选择的数据行
                {
                    //从 DATAGRIDVIEW 中获取数据项
    
                    dgvPayDetails.CurrentCell = dgvPayDetails.Rows[e.RowIndex].Cells[5];
                    dgvPayDetails.BeginEdit(true);
              
                }
    
            }
    View Code

    注:
    获得单元格的值 string z_zcode = dgvPayDetails.Rows[i].Cells[5].Value.ToString().Trim();

  • 相关阅读:
    用vuex写了一个购物车H5页面的示例代码
    css如何引入外部字体?
    移动开发中更好的图片自适应
    常见样式问题七、word-break、word-wrap、white-space区别
    你真的了解word-wrap和word-break的区别吗?
    css中word-break、word-wrap和white-space的区别
    另辟蹊径:vue单页面,多路由,前进刷新,后退不刷新
    应该用forEach改变数组的值吗? 原生JS forEach()和map()遍历的异同点
    Vue 全家桶介绍
    Spring MVC配置MyBatis输出SQL
  • 原文地址:https://www.cnblogs.com/shuang121/p/3103788.html
Copyright © 2020-2023  润新知