如何在c#中添加数据视图column1和column2到column3

本文关键字:column1 column2 column3 视图 数据 添加 | 更新日期: 2023-09-27 18:03:05

我试图添加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();
 }

当我试图像这样第一次添加时,值正在添加和插入到第三个字段,如果我回到相同的单元格,它再次添加到已经添加的字段。我怎样才能正确地添加它。这是因为我使用细胞离开甚至。是否有其他方法或其他事件可以正确地做到这一点

如何在c#中添加数据视图column1和column2到column3

也许您可以引入一个保存旧值的变量,当事件被触发时,旧值从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;
   }
}