31 Stimmen

DataGridView erste Spalte, erste Zeile, wird beim Laden ausgewählt, ich will das nicht

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?

38voto

Dave Marley Punkte 655

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.

23voto

DaneAnthony Punkte 236

Ich hatte das gleiche Problem und nichts funktionierte. Die Lösung, die bei mir funktionierte, bestand darin, die Eigenschaft "Tabstop" auf "False" zu setzen und die Methode ClearSelection() unmittelbar nach der Datenbindung aufzurufen.

4voto

Jay Riggs Punkte 52013

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 ...
    }
}

2voto

user2272788 Punkte 333

Sie sollten anrufen: ClearSelection nach dem Ereignis: DataBindingComplete

2voto

Minimihi Punkte 408

Nach der Begrenzung der Daten rufen Sie einfach

dataGridView.ClearSelection();

Ich denke, Sie haben versucht, es aufzurufen, bevor Sie Daten auf dataGrindView setzen, wenn Sie es überhaupt versucht haben

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X