0

我正在尝试将 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();

 }

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

4

1 回答 1

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;
   }

}
于 2013-03-08T19:24:35.617 回答