Hallo
Ausgangslage:
1. DataGridView mit 100 Zeilen
2. Selektiere Zeile mit
Maus (z.B. Zeile 7)
3. Ändere Zeilenselektion durch Code / Event KeyPress() auf Zeile 36
4. Nach Selektion mit Pfeiltaste auf Zeile 37 springen
Beispielcode zu Pos. 3
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| private void dataGridView6_KeyDown(object sender, KeyEventArgs e) } dataGridView6.Rows[i_index + 1].Selected = true; dataGridView6.FirstDisplayedScrollingRowIndex = dataGridView6.Rows[i_index + 1].Index; } else } |
Problem:
Wenn ich die Funktion mit der Pfeiltaste auslöse, wird die Zeile 37 selektiert und angezeigt (alles ok, getestet mit MessageBox).
Nach dem Beenden KeyPress-Ereignisses wird die Selektion wieder auf die Zeile 7 + 1 gesetzt, also auf Zeile 8.
Frage:
Warum bleibt die Selektion nicht auf der neu gesetzten Selektion bestehen?
Welcher Unterschied besteht bei einer codeselektierten Zeile und einer mausselektierten Zeile?
Gibt es eine Funktion die die Mausselektion übersteuert? (dataGridView6.ClearSelection(); funktioniert auch nicht)
Irgendwie hat die neu selektierte Zeile nicht die gleichen Eigenschaften wie eine selektierte Zeile mit der Maus.
Die neu selektierte Zeile wird also ignoriert oder überschrieben.
Hat jemand einen Tip?