Datagridview einzelne Checkboxen ausblenden

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von thefinki.

    Datagridview einzelne Checkboxen ausblenden

    Hallo ihr lieben,

    ich habe in einer Datagridview eine Importierte .csv Datei dargestellt.

    2 Spalten mit einem Text, dann eine Checkbox in der Dritten Spalte (Quasi zum Abhaken, was erledigt wurde)

    Ich möchte nur, dass die Checkboxen ausgeblendet werden, wenn die beiden Spalte davor leer sind. (Es sind übrigens immer beide leer, oder beide gefüllt).
    Hat da jemand eine Idee?
    Diese Zeilen löschen geht leider nicht, da es sich um einen Plan mit Uhrzeiten handelt, deshalb muss die Zeile bestehen bleiben.

    Den Code kann ich leider nicht posten, da es sich um ein Projekt für einen Kunden handelt.

    Liebe Grüße!

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Willkommen im Forum.
    VBScript? Klingt wegen DGV eher nach VB.Net. Wenn Du mit Visual Studio arbeitest, bist Du mit VB.Net unterwegs.
    Standardmäßig kann man in nem WinForms-DGV die CheckBoxen nicht ausblenden, nur deaktivieren - falls das reicht, also die Zelle ReadOnly machen und ggf. den Hintergrund grau machen, um dem User anzuzeigen, dass das gerade nix zu machen ist.

    Als Workaround/Hack:
    Gegeben sei ein DGV namens DataGridView1, darin eine TextBoxColumn (= Spalte 1) und eine CheckBoxColumn (= Spalte 2):

    VB.NET-Quellcode

    1. Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
    2. If DataGridView1.Item(0, e.RowIndex).Value Is Nothing AndAlso TypeOf DataGridView1.Item(1, e.RowIndex) Is DataGridViewCheckBoxCell Then
    3. DataGridView1.Item(1, e.RowIndex) = New DataGridViewTextBoxCell()
    4. DataGridView1.Item(1, e.RowIndex).Value = String.Empty
    5. DataGridView1.Item(1, e.RowIndex).ReadOnly = True
    6. ElseIf DataGridView1.Item(0, e.RowIndex).Value IsNot Nothing AndAlso TypeOf DataGridView1.Item(1, e.RowIndex) Is DataGridViewTextBoxCell Then
    7. DataGridView1.Item(1, e.RowIndex) = New DataGridViewCheckBoxCell()
    8. DataGridView1.Item(1, e.RowIndex).ReadOnly = False
    9. End If
    10. End Sub
    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.
    @thefinki Ebenfalls Willkommen im Forum. :thumbup:
    Wenn Du eine CSV importierst, kannst Du doch alle Zeilen löschen oder ignorieren, deren erste beide Items leer sind.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    kannst Du doch alle Zeilen löschen oder ignorieren, deren erste beide Items leer sind.

    thefinki schrieb:

    Diese Zeilen löschen geht leider nicht, da es sich um einen Plan mit Uhrzeiten handelt, deshalb muss die Zeile bestehen bleiben.

    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.
    @thefinki das musst du uns noch detaillierter erklären...
    PS:
    wie man eine Checkbox aus einer DGV-Celle unsichtbar macht könnte so von sich gehen:
    Schaue dir das angehängte Projekt einmal an und lösche einen Text aus der Spalte Article...
    Dateien

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()

    @thefinki Dann fang an und schreib eine vollständige und belastbare Aufgabenstellung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!