Also im Grunde die erste Spalte in der ersten Zeile ist immer ausgewählt, ich kann nicht herausfinden, eine Möglichkeit, so dass die Gridview hat keine ausgewählten Zellen Irgendeine Hilfe?DataGridView erste Spalte, erste Zeile, ist auf Load ausgewählt, ich möchte nicht
Antwort
Ich hatte das gleiche Problem und nichts funktionierte begrenzt. Die Lösung, die für mich funktionierte, war das Setzen der Eigenschaft 'Tabstop' auf False und das Aufrufen der ClearSelection() -Methode unmittelbar nach der Datenbindung.
Netter Tipp: Dies löst immer noch das SelectionChanged-Ereignis aus, das verursachen könnte Probleme für einige –
@Above Sie können das Ereignis der Auswahländerungen lösen, indem Sie so etwas tun. "MyDataGrid.SelectionChanged - = this.MyDataGrid_SelectionChanged;" // Führen Sie einige Operationen durch und binden Sie das Selektionsänderungsereignis erneut, indem Sie das tun, "MyDataGrid.SelectionChanged + = this.MyDataGrid_SelectionChanged;" Ich bin nicht sicher, ob dies zu Leistungsproblemen führt. – Hari
der CurrentCell
Eigenschaft des DGV Set nach Datenbindung der DGV auf null:
dataGridView1.CurrentCell = null;
Beachten Sie, dass dies zu tun wird nicht DGV Ereignisse mit Zeilen- und Zellenauswahl von Brennen zugeordnet verhindern; Sie werden ausgewählte Zeile oder Zellzahl Kontrollen RowEnter Ereignisse, so etwas wie dies hinzufügen:
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) {
if (dataGridView1.SelectedRows.Count == 1) {
// Do stuff since a row is actually selected ...
}
}
ich ziemlich viel Mühe mit diesem selbst hatte. Ich habe ein Benutzersteuerelement mit einem DataGridView, das beim Laden der Anwendung/des Formulars gefüllt wird. Die Auswahl der ersten Zeile scheint zu passieren nach Datenbindung ist abgeschlossen und das Gitter ist bevölkert/gerendert. Das Benutzersteuerungsladeereignis (und vermutlich auch das Formularladen) wird davor ausgelöst. Daher hat das Aufrufen von gridView.ClearSelection() oder das Annullieren von gridView.CurrentCell in diesen Ladeereignissen keinen Nettoeffekt.
Was schließlich für mich gearbeitet rufen .ClearSelection() aus dem Databindingcomplete Ereignisse des Datagridview selbst. Das hat wie ein Zauber funktioniert.
Das funktionierte für mich, aber das SelectionChanged-Ereignis des Gitters wird immer noch danach mit der ausgewählten Zeile aufgerufen, also muss ich eine hässliche Flag-Logik in meinem Formular haben, um herauszufinden, welcher Benutzer ausgewählt wurde eine Reihe oder nicht. – qwerty13579
Deshalb sollte ich nicht nur die beste Antwort lesen.:/ –
Ich habe versucht, die Antwort ticked und das hat nicht funktioniert für mich, diese Antwort funktioniert! Danke Dave. – harag
nach Daten rufen Sie einfach
dataGridView.ClearSelection();
Ich denke, man versucht, es zu nennen, bevor die Daten zu dataGrindView Einstellung, auch wenn Sie jemals versucht es
Das funktioniert nicht, die erste Zeile ist immer noch ausgewählt – qwerty13579
Wenn ich das Q verstehe. Dies verhindert, dass eine Zelle nach der Datenbindung ausgewählt angezeigt wird. So bleibt die Rückenfarbe weiß. Sie können auch die Spalten bearbeiten und dort festlegen.
DataGridView.DefaultCellStyle.SelectionBackColor = DataGridView.DefaultCellStyle.BackColor;
sollten Sie rufen: Clear nach Ereignis: Databindingcomplete
Ich wollte auch schreibgeschützte Datagridview, und in meinem Fall ein separater Thread langsam Daten zu erhalten und an den GUI-Thread über eine Multi Gabe -Fadenliste und Form-Timer. Bei diesem Ansatz erweitert der GUI-Thread das Datenraster nach Bedarf und ermöglicht das Durchsuchen.
Mit den obigen Vorschlägen könnte die Auswahl ausgeblendet sein, aber keine konnte verhindern, dass die Zelle zurückgesetzt wird, wenn mein GUI-Thread dataGridView.Rows.Add() mit einer Auswahl aufruft. Dazu gehören das Einhängen von Ereignissen, um die Auswahl zu verhindern, und das Deaktivieren des Bearbeitungsmodus.
fand ich das Verhalten, das ich mit
dataGridView.AllowUserToAddRows = false;
Jetzt habe ich einen dynamische Größe, asynchron geladen Datenraster gesucht, die nur gelesen wird.
Ich mochte die BackgroundWorker Lösung nicht, weil der Fortschritt eine Belastung für meinen Ladecode ist. Ich mochte auch nicht die Notwendigkeit, eine neue DataTable bei jeder Aktualisierung des Rasters neu zu erstellen.Ich konnte keine Hinweise zum Aktualisieren des DataGridView mit einer DataTable finden, die gerade aufgebaut wird, aber es scheint so, als ob dies möglich sein sollte.
hatte ich das gleiche Problem und haben es durch Überschreiben der OnPropertyChanged Ereignis des
Gridprotected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
this.ClearSelection();
}
Stellen Sie sicher, dass nicht die Methode aufrufen zu laden, um die Daten aus dem Formular-Konstruktor gelöst. Wenn Sie es von der Form.Load() aufrufen
auch nach dem Datagridview wird geladen tun, um diese
DataGridView.Rows[0].Selected = false;
ich das gleiche Problem in meinem Fall hatte, statt der ersten Zeile Sichtbarkeit auf false gesetzt. Es wäre besser, den GridColor-Wert festzulegen, um ein Risiko für SelectionChanged Event zu vermeiden.
Put dgv.ClearSelection() auf Databindingcomplete-Ereignis und setzen Gridcolor auf Ihre Datagridview Backcolor.
Setzen Sie GridColor auf die sichtbare Farbe (z. B. "Grau") für Ihre Populate-Methode/Feuerungsereignis.
Die meiste Zeit ist es durch einen kleinen Fehler verursacht, vielleicht die datagridview
auf einem Gruppenfeld gesetzt. Wenn es mehrere Gruppenfelder gibt, wird die Auswahl im ersten Gruppenfeld angehalten. Behalten Sie das Gruppenfeld daher nach Priorität bei.
- 1. LOAD DATA LOCAL, Wie überspringe ich die erste Zeile?
- 2. datatable.GetChanges() zeigt immer die erste Zeile von DataGridView
- 3. csv.reader vermisst erste Zeile
- 4. Wie richtet man die zweite Spalte der zweiten Zeile auf dieselbe erste Spalte oder erste Zeile in Bootstrap aus?
- 5. UIPickerView - erste Zeile Auswahl ruft nicht didSelectRow
- 6. Excel-VBA-Suchfunktion berücksichtigt nicht erste Zeile der Spalte
- 7. Textarea erste Zeile fett
- 8. zur Zeit Text ausgewählt Erste
- 9. Wählen Sie die erste sichtbare Zelle der neuen Zeile in DataGridView
- 10. BufferedReader überspringen erste Zeile
- 11. C# WinForms DataGridView - Konstante Zeile ausgewählt!
- 12. Erste Zeile mit JSoup
- 13. DataGridView: So wählen Sie die erste Zelle in der aktuellen Zeile aus, wenn MultiSelect wahr ist
- 14. Klare erste Zeile jtexttarea
- 15. So erhalten Sie die erste Spalte, die nicht null ist
- 16. DataGridView, das immer eine Zeile ausgewählt hat
- 17. LEFT JOIN nur erste Zeile
- 18. Ignorieren erste Zeile auf csv parse Rails
- 19. C# erste Zeile einer Textdatei
- 20. Verhindern, dass ein DataGridView das erste Element auswählt
- 21. ng gewählte erste ist, dass nicht versteckt
- 22. Freeze erste Spalte und Detail
- 23. Stop Datagrid erste Zeile standardmäßig auswählen
- 24. Ist es die erste Zeile auf einer neuen Seite?
- 25. willDisplayCell erste Zeile funktioniert nicht in Swift
- 26. numpy loadtxt überspringen erste Zeile
- 27. Drucken Sie das erste Wort in jeder Spalte als Zeile.
- 28. Erste SQLiteException: keine solche Spalte
- 29. BigQuery Abfrage erste verfügbare Spalte
- 30. Sehr langsam: xts Spalte durch erste Zeile teilen
warum hat die erste reihe, col ein problem ausgewählt? – Beth
Die Marketing-Leute sagten so ... :( – Spooks