2016-08-07 2 views
0

У меня возникла проблема с обновлением значения ячейки в dataGridView.Обновить данныеGridView при изменении значения ячейки

Моя программа в C# задает значения некоторых строк при нажатии кнопки, но я разрешаю пользователю изменять какое-то значение в DataGridView.

EG. Column3 = Column2 + Column1.

Что работает правильно, когда я нажимаю кнопку, но после этого, когда я меняю значение ячейки в столбце2, мне также нужно, чтобы Column3 изменил значение.

I'v пытался

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

Но это своего рода не работает. Может ли кто-нибудь сказать мне, как мне это сделать?

ответ

0

Попробуйте добавить следующее действие к событию CellValueChanged в DataGridView.

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

Он проверяет, была ли изменена первая или вторая колонка, и если это изменение для любой возможной строки. Он должен обновить третий столбец на основе значений в 1-м и 2-м столбцах для этой строки, в которой вы изменили эти значения столбца. Теперь он работает только для целочисленных значений.

Смежные вопросы