Gebundenes DGV mit ungebundener Checkbox-Spalte - alle selektieren dauert lange

  • VB.NET
  • .NET 4.5

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von AndPod.

    Gebundenes DGV mit ungebundener Checkbox-Spalte - alle selektieren dauert lange

    Hallo
    ich habe in einem gebundenen Datagridview eine ungebundene Checkbox-Spalte eingefügt. Der Benutzer kann jeden Eintrag manuell (de)selektieren. Über eine separate Checkbox kann er auch alle Einträge im Datagridview (de)selektieren. Nur dauert das für mein Gefühl zu lange. Im Datagridview sind ca. 400 Einträge, es werden keine weiteren Ereignisse (Click, ...) ausgeführt. Trotzdem dauert das selektieren gut 10 Sekunden. Ist das normal? Hier der Code:

    VB.NET-Quellcode

    1. For Each dgvRow As DataGridViewRow In Me.AuftraggeberVkzDataGridView.Rows
    2. dgvRow.Cells(Me.AuswahlColumn.Index).Value = Me.AuswahlAgCheckBox.Checked
    3. Next


    Was halt am meisten daran stört, es geht darum zwischen 2 Stammdaten (Auftraggeber und Objekte) eine n:n Beziehung zu bilden. Der Nutzer kann also pro Auftraggeber beliebig viele Objekte zuweisen. Diese Verknüpfung (ID Auftraggeber und ID Objekt) speichere ich in einer 3. Tabelle. Wechselt der Nutzer also den Auftraggeber-Datensatz, durchläuft ein ähnlicher Code wie oben das Datagridview mit den Objekten und (de)selektiert die entsprechenden Einträge. Was natürlich genauso lange dauert wie der oben beschriebene Prozess.
    Nein, das ist nicht normal. Der erstgenannte Vorgang dauert bei mir in einem gebundenen DGV mit 400 Zeilen < 0,3 Sekunden. Von daher passiert bei Dir mehr als Dir bewusst ist. Gibt's da noch mehr Code drumrum? Ggf. in der DataSource selbst? Nimm mal ein neues DGV, pack Deine Daten rein und gib allen Zeilen in der ungebundenen Spalte den Wert True. Wie lange dauert das?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Ok, hab dank deines Tipps das Problem gefunden. Es lag daran, dass im DGV AutoSizeColumnsMode auf AllCells steht. Dadurch wurde wahrscheinlich bei jedem "Haken setzen" die Spaltenbreite neu gesetzt, was zu der Verzögerung führt. Ich setz den Wert jetzt vorher auf None, dann fluppt das auch wie gewünscht. Vielen Dank.