/ / DataGridView Event to Catch, gdy wartość komórki została zmieniona przez użytkownika - c #, winformy, datagridview

DataGridView Wydarzenie do złapania, gdy wartość komórki została zmieniona przez użytkownika - c #, winforms, datagridview

Mam aplikację WinForm napisane w języku C #.

W jednym z moich DataGridViews ustawiłem wszystkie kolumny z wyjątkiem jednego o nazwie "Reference" do ReadOnly = true;

Chcę, aby aplikacja wiedziała, kiedy użytkownik mazmieniono cokolwiek w kolumnie "Referencja", ale wszystkie zdarzenia, które wypróbowałem do tej pory, są znacznie częstsze niż w przypadku wprowadzenia zmian przez użytkownika. Na przykład CurrentCellChanged uruchamia się po początkowym renderowaniu DataGridView i za każdym razem, gdy użytkownik po prostu klika lub przechyla się wzdłuż wierszy itp.

Interesuje mnie tylko przechwytywanie zmian użytkownika w danych w kolumnie "Reference", która jest TYLKO kolumną, w której ReadOnly = false;

Jakie jest najlepsze wydarzenie do tego?

Odpowiedzi:

22 dla odpowiedzi nr 1

CellValueChanged jest to, czego potrzebujesz:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e){
if(dataGridView1.Columns[e.ColumnIndex].Name == "Reference"){
//your code goes here
}
}

Myślę, że to wydarzenie CellEndEdit nadaje się również do Twoich potrzeb:

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e){
if(dataGridView1.Columns[e.ColumnIndex].Name == "Reference"){
//your code goes here
}
}

-2 dla odpowiedzi nr 2

DataGridView.CurrentCellDirtyStateChanged