.net 单元格值更改时更新dataGridView

juzqafwq  于 2022-12-01  发布在  .NET
关注(0)|答案(1)|浏览(150)

刷新dataGridView中的单元格值时遇到一些问题。
我的程序用C#设置单击按钮时某些行的值,但我允许用户在DataGridView中更改某些值。
例如,列3 =列2+列1。
当我单击该按钮时,它可以正常工作,但在它之后,当我更改Column2中的某些单元格值时,我也希望Column3更改值。
我试过了

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
            dataGridView11.Update();
            dataGridView1.Refresh();
    }

还有

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
           button1_Click(this, new EventArgs());
           new value = true;
    }

并在我的button1_Click代码中设置以下内容:

if(value == true){
      for (int i = 0; i < dataTable.Rows.Count; i++){
          dataTable.Rows[i][all] = (int)dataTable.Rows[i][columnNumber] 
          + (int)dataTable.Rows[i][amount];
      }
   }

但它有点不起作用。谁能告诉我该怎么做?

iqih9akk

iqih9akk1#

尝试将以下操作添加到DataGridView CellValueChanged事件中

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
        var grid = (sender as DataGridView);
        if (e.RowIndex != -1 && (e.ColumnIndex == 0 || e.ColumnIndex == 1))
            (grid.Rows[e.RowIndex]).Cells[2].Value = (int)(grid.Rows[e.RowIndex]).Cells[0].Value + (int)(grid.Rows[e.RowIndex]).Cells[1].Value;
}

它检查第一列或第二列是否已更改,以及此更改是否针对任何可能行它应该根据您更改了这些列值行第一列和第二列中值更新第三列目前它仅适用于整数值

相关问题