2016-08-07 12 views
0

dataGridViewのセルの値をリフレッシュする際に問題があります。セルの値が変更されたときにdataGridViewを更新します。

私のプログラムでは、ボタンクリックでいくつかの行の値を設定しますが、DataGridViewで値を変更することができます。

EG。 Column3 = Column2 + Column1。

ボタンをクリックすると正しく動作しますが、後にColumn2のセルの値を変更すると、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

次のアクションを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; 
} 

第一または第二の列が変更された場合はチェックして、この変更は、任意の可能な行のためのものである場合。 これらの列の値を変更した行の第1列と第2列の値に基づいて、第3列を更新する必要があります。 これは整数値に対してのみ機能します。

関連する問題