Also im Grunde die allererste Spalte in der ersten Zeile ist immer ausgewählt, ich kann nicht herausfinden, einen Weg, um es zu haben, so dass die Gridview keine ausgewählten Zellen hat. Jede Hilfe?
Antworten
Zu viele Anzeigen?Ich hatte selbst ziemliche Schwierigkeiten damit. Ich habe ein Benutzersteuerelement mit einer DataGridView, die beim Laden der Anwendung/des Formulars ausgefüllt wird. Die Auswahl der ersten Zeile scheint zu geschehen nach Die Datenbindung ist abgeschlossen und das Raster wird aufgefüllt/gerendert. Die Benutzer-Steuerelement-Lade-Ereignis (und vermutlich auch Formular laden) feuert vor, dass - so Aufruf gridView.ClearSelection() oder nullifying gridView.CurrentCell in diesen Ladeereignisse hat keine Netto-Effekt.
Was bei mir schließlich funktionierte, war der Aufruf von .ClearSelection() aus der DataBindingComplete Veranstaltung des DataGridView selbst. Das hat wunderbar funktioniert.
Stellen Sie die DGV's ein CurrentCell
Eigenschaft nach der Datenbindung des DGV auf Null setzen:
dataGridView1.CurrentCell = null;
Beachten Sie, dass dies nicht verhindert, dass DGV-Ereignisse, die mit der Zeilen- und Zellenauswahl verbunden sind, ausgelöst werden; Sie müssen Prüfungen der Anzahl ausgewählter Zeilen oder Zellen zu RowEnter-Ereignissen hinzufügen, etwa wie folgt:
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) {
if (dataGridView1.SelectedRows.Count == 1) {
// Do stuff since a row is actually selected ...
}
}
- See previous answers
- Weitere Antworten anzeigen