如何在c#中将datagridview column1和column2添加到column3中

时间:2013-03-08 17:27:08

标签: c# datagridview add

我正在尝试将column1值添加到column2并且必须插入column2

我的代码是

活动 CellLeave

if (dgrVwEmp.Columns[dgrVwEmp.CurrentCell.ColumnIndex].Name == "ol")
 {
    int ol;
    int.TryParse(dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                         .Cells["ol"].EditedFormattedValue.ToString(), out  ol);

    int leavs;
    int.TryParse(dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                         .Cells["ttlLeaves"].Value.ToString(), out leavs);

    int dys;
    int.TryParse(dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                         .Cells["ttlWrkng"].Value.ToString(), out dys);

    dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                         .Cells["ttlLeaves"].Value = (ol + leavs).ToString();
    dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                         .Cells["ttlWrkng"].Value = (dys - ol).ToString();

 }

当我第一次尝试添加时,值是添加并插入第3个字段,如果我回到同一个单元格,它会再次添加到已添加的字段。如何正确添加它。这是因为我正在使用Cell Leave。是否有其他方式或其他事件正确地执行此操作

1 个答案:

答案 0 :(得分:1)

也许你可以引入一个保存旧值的变量,当事件被触发时,在添加新值的同时从ttleaves单元格中减去旧值。与ttlWrkng单元格相反:

private int oldValue = 0;

private void dgrVwEmp_CellLeave(object sender, DataGridViewCellEventArgs e)
{
   if (dgrVwEmp.Columns[dgrVwEmp.CurrentCell.ColumnIndex].Name == "ol")
   {
      int ol;
      int.TryParse(dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                     .Cells["ol"].EditedFormattedValue.ToString(), out  ol);

      int leavs;
      int.TryParse(dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                     .Cells["ttlLeaves"].Value.ToString(), out leavs);

      int dys;
      int.TryParse(dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                     .Cells["ttlWrkng"].Value.ToString(), out dys);

      dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                     .Cells["ttlLeaves"].Value = (ol + leavs - oldValue).ToString();
      dgrVwEmp.Rows[dgrVwEmp.CurrentCell.RowIndex]
                     .Cells["ttlWrkng"].Value = (dys - ol + oldValue).ToString();

      oldValue = ol;
   }

}