Change DataGridView Cell Value Programmatically

Viewed 26395

I have a datagridview which has a datatable as data source. I need to change some cell values manually. For example, if cell input value contains character 'g', it must change "abc" automatically when I leave cell. Following code checks the formatted value of current cell:

private void dgwPNotlar_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
  if (e.ColumnIndex<2||e.ColumnIndex>4||e.FormattedValue.ToString()=="")
  {
    return;
  }

  if (e.FormattedValue.ToString().Contains('G')||e.FormattedValue.ToString().Contains('g'))
  {
    dgwPNotlar.EditMode = DataGridViewEditMode.EditProgrammatically;
    dgwPNotlar.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "abc";
    dgwPNotlar.EndEdit();
    dgwPNotlar.EditMode = DataGridViewEditMode.EditOnEnter;
    return;
  }
}

When the code "dgwPNotlar.EndEdit();" runs, the cell value I changed is "abc", returns to previous value as "g" or "G"..

Any ideas?

2 Answers

Here´s my code in VB applying his solution:

Private Sub dataGridView_CellValidated(sender As Object, e As DataGridViewCellEventArgs) Handles dataGridView.CellValidated

    Dim cellValue As String = dataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).FormattedValue.ToString()
    If (cellValue.Contains(".")) Then
        cellValue = cellValue.Replace(".", ",")
        dataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = cellValue
    End If
End Sub
Related