DGV nicht sichtbare Spalte beim zweiten Öffnen sichtbar

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    DGV nicht sichtbare Spalte beim zweiten Öffnen sichtbar

    Hi,

    mein DataGridView bringt mich grad zum Verzweifeln.
    Ich habe eine Spalte (id) mit visible = false ausgeblendet. Beim ersten Öffnen der Form mit dem DGV wird das auch beachtet.

    Der Aufruf der Form erfolgt als Dialog.

    VB.NET-Quellcode

    1. Dim dialogResult1 = Benutzerverwaltung.ShowDialog()




    Ich schließe ich die Form mit close und rufe sie erneut mit ShowDialog auf.



    Nun wird die Spalte id angezeigt. Ich mache in der Form nichts, außer was im Load passiert:

    VB.NET-Quellcode

    1. 'TODO: Diese Codezeile lädt Daten in die Tabelle "_db_f_ismsDataSet.fisms_user_activitystate". Sie können sie bei Bedarf verschieben oder entfernen.
    2. Me.Fisms_user_activitystateTableAdapter.Fill(Me._db_f_ismsDataSet.fisms_user_activitystate)
    3. 'TODO: Diese Codezeile lädt Daten in die Tabelle "_db_f_ismsDataSet.fisms_rechte". Sie können sie bei Bedarf verschieben oder entfernen.
    4. Me.Fisms_rechteTableAdapter.Fill(Me._db_f_ismsDataSet.fisms_rechte)
    5. 'TODO: Diese Codezeile lädt Daten in die Tabelle "_db_f_ismsDataSet.fisms_user". Sie können sie bei Bedarf verschieben oder entfernen.
    6. Me.Fisms_userTableAdapter.Fill(Me._db_f_ismsDataSet.fisms_user)


    Ich verstehe den Effekt nicht, dass beim ersten Mal die Spalte im DGV ausgeblendet wird - wie gewünscht - und bei jedem weiteren Öffnen dies ignoriert wird.
    Interessanterweise gibt es noch eine weitere Spalte (password) die ausgeblendet wird, diese bleibt es auch selbst bei mehrmaligen Öffnen der Form und des DGVs.

    Irgendeinen Tipp?

    EDIT: Hängt wohl irgendwie mit dem Aufruf der Form zusammen. Wenn ich die Form nur mit Show aufrufe, tritt der Effekt nicht auf.

    Bye
    Markus
    8-Bit Nerd - Retro-Computer Junkie - Elektronik-Fuzzi - Lötkolben-Jongleur
    Lord Luxors Retrogalerie llrg.me

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Lord Luxor“ ()

    Ich hatte auch Mal ein DGV, welches mich zur Verzweiflung gebracht hat.
    Bei mir hat es geholfen, das DGV im Designer neu zu erzeugen.
    Mit gleichem Code hat es dann funktioniert.
    Zum testen würde ich ein neues DGV zusätzlich auf die Form klatschen, und das neue befüllen (dann zerschießt du dir nicht die Formatierung, falls es nicht hilft)
    Du könntest auch alternativ mal probieren, die ID-Column via Code (beim Öffnen der Form) auf Visible = False zu setzen,
    außerdem könntest du (falls du die gar nicht brauchst), auch aus dem DGV rauslöschen im Designer.
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Danke für die Tipps.
    Leider kann ich auf die ID-Spalte nicht verzichten, da ich den Wert zur weiteren Bearbeitung brauche.
    Ein neues DGV habe ich mal auf die Form gepackt und mit den Daten befüllt. Gleicher Effekt bei ShowDialog.
    Ich lasse die Spalte jetzt beim Laden der Form aus dem Code her ausblenden.

    Bye
    Markus
    8-Bit Nerd - Retro-Computer Junkie - Elektronik-Fuzzi - Lötkolben-Jongleur
    Lord Luxors Retrogalerie llrg.me
    naja, wenn du ne typisierte tabelle angebunden hast, dann kannst du dir die ID bzw. die DataRow auch holen, wenn die ID nicht angezeigt wird bzw. nicht im DGV vorhanden ist.
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    kurzer Einwurf: Zeig mal bitte die Zeile, in der Du die Variable Benutzerverwaltung anlegst.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    kurzer Einwurf:

    Mir lag's schon auf der Zunge, war mir aber nicht sicher.

    @Lord Luxor: Probier ma

    VB.NET-Quellcode

    1. Using dlg As New Benutzerverwaltung
    2. dlg.ShowDialog()
    3. End Using


    ob sich das Verhalten immer noch reproduzieren lässt. VaporiZed und ich vermuten, dass du den Dialog nirgends instanziierst.
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Ok, Danke genau das war es.
    Ich dachte, wenn ich die Form anlege dann wäre das Objekt schon existent und ich könnte es als Dialog ranziehen.
    Dass ich da nochmal eine separate Instanz brauche wusste ich nicht.

    Man lernt jeden Tag was neues dazu.

    Bye
    Markus
    8-Bit Nerd - Retro-Computer Junkie - Elektronik-Fuzzi - Lötkolben-Jongleur
    Lord Luxors Retrogalerie llrg.me

    Lord Luxor schrieb:

    Ich dachte, wenn ich die Form anlege dann wäre das Objekt schon existent
    Zur Hälfte hast du recht.
    Das ist diese blöde VB6-Kompatibilität.
    Du solltest dir dringend diese Thema verinnerlichen:
    Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --