none
如何在datagridview中进行计算 RRS feed

  • 问题

  • 在datagridview中有三列,单价和数量及金额,现在想在输入完数量和单价后在金额列中自动计算出结果.看了一下datagridview中的方法和事件,都不知道将代码写在哪里才可以达到功能哦.以前可以在datagrid中的某一列的lostfocus事件中可以写代码,但是现在在datagridview中好像不能在指定的某一列中写代码.所有的代码都只能在datagridview的方法和事件中写吗?
    2010年11月29日 1:59

答案

全部回复

  •  private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
          if (e.ColumnIndex==1)
          {
            int price=0;
    
            bool isprice = Int32.TryParse(this.dataGridView1.CurrentRow.Cells[0].EditedFormattedValue.ToString(), out price);
    
            int num = 0;
            bool isnum =Int32.TryParse(this.dataGridView1.CurrentRow.Cells[1].EditedFormattedValue.ToString(),out num);
            
            int sum = price * num;
            this.dataGridView1.CurrentRow.Cells[2].Value = sum.ToString();
          }
        }
    
        private void Form2_Load(object sender, EventArgs e)
        {
          DataGridViewTextBoxColumn dgtPrice = new DataGridViewTextBoxColumn();
          dgtPrice.HeaderText = "价格";
          dgtPrice.Name = "price";
          this.dataGridView1.Columns.Add(dgtPrice);
    
          DataGridViewTextBoxColumn dgtNum = new DataGridViewTextBoxColumn();
          dgtNum.Name = "Num";
          dgtNum.HeaderText = "数量";
          this.dataGridView1.Columns.Add(dgtNum);
    
          DataGridViewTextBoxColumn dgtSum = new DataGridViewTextBoxColumn();
          dgtSum.HeaderText = "总额";
          dgtSum.Name = "sum";
          this.dataGridView1.Columns.Add(dgtSum);
    
        }
    

    http://blog.csdn.net/zx13525079024
    • 已建议为答案 Kira Qian 2010年12月1日 2:51
    2010年11月29日 14:09
  • 谢谢您的回答.
    • 已标记为答案 flywithme 2010年12月4日 0:08
    2010年12月3日 3:38