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 1CellValueChanged
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