Hallo Dennis,
verstehe ich Dich richtig, dass Du aus einer Textdatei einfache Wertepaare (z.B. in der Art "deutsch=german") hast und diese in die Zellen des DataGridView überträgst? Du hast also insbesondere
keine indizierte Datasource (z.B. DataTable, HashTable) dahinter?
Dann bleibt Dir nichts anderes übrig, als alle Zeilen durchzugehen, bis Du die passende getroffen hast; dort wird
CurrentCell neu gesetzt. Allerdings geht das mindestens bis zu 1000 Einträgen ruck-zuck (wahrscheinlich auch noch bei viel mehr Einträgen):
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| MyDataGridView.SuspendLayout(); int x0 = -1; bool bTreffer; do { x0++; bTreffer = (string)MyDataGridView.Rows[x0].Cells[0].Value; } while (x0 < MyDataGridView.Rows.Count || (!bTreffer)); if (bTreffer) MyDataGridView.CurrentCell = MyDataGridView.Rows[x0].Cells[0]; MyDataGridView.ResumeLayout(); |
Direkte
Suchfunktionen nach Inhalten einzelner Zellen gibt es in DataGridView nicht; mit einer Datenquelle (s.o.) hat man es viel leichter.
Merke: In ADO.NET wird grundsätzlich zwischen den Daten (z.B. DataTable) und der Anzeige (z.B. DataGridView) getrennt. Wenn man das beachtet, wird vieles einfacher.
Viel Erfolg!
PS. Ein Blick in die
SDK-Doku unter
ScrollTo zeigt, dass es diese Methode beim DataGridView nicht gibt.