DGV - Checkboxen State nicht änderbar

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Westerwälder.

    DGV - Checkboxen State nicht änderbar

    Guten Morgen,

    trotz Readonly False kann ich den State der Checkboxen im DGV nicht ändern (Columns 12 bis 23).
    Textboxen sind änderbar.

    VB.NET-Quellcode

    1. With DGV_GKostenstellen
    2. .DataSource = Nothing
    3. .ReadOnly = False
    4. .EnableHeadersVisualStyles = False
    5. .ColumnHeadersDefaultCellStyle.BackColor = Monitor.Farbe_DGVHeader
    6. .ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False
    7. .DataSource = IB.Wohnung.Kostenstelle.Dat_Kostenstellen.DataTabelle
    8. .Columns("ID").Visible = False
    9. .Columns("Wohnung").Visible = False
    10. .Columns("Wohnungnummer").Visible = False
    11. .Columns("Mieternummer").Visible = False
    12. .Columns("Objektnummer").Visible = False
    13. With .Columns("Nummer")
    14. .ToolTipText = "Kosten Nummer"
    15. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    16. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    17. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    18. .DefaultCellStyle.BackColor = Monitor.Farbe_Panel
    19. .ReadOnly = True
    20. End With
    21. With .Columns("Zaehlernummer")
    22. .HeaderText = "Zähler Nr."
    23. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    24. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    25. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    26. .ReadOnly = True
    27. End With
    28. With .Columns("Buchungsjahr")
    29. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    30. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    31. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    32. .ReadOnly = True
    33. End With
    34. With .Columns("Menge")
    35. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    36. .DefaultCellStyle.Format = "N2"
    37. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    38. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    39. .ReadOnly = True
    40. End With
    41. With .Columns("Betrag")
    42. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    43. .DefaultCellStyle.Format = "N2"
    44. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    45. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    46. .ReadOnly = True
    47. End With
    48. With .Columns("RE-Nummer")
    49. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    50. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    51. .AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    52. .ReadOnly = False
    53. End With
    54. With .Columns("Aktiv")
    55. .ToolTipText = "Kostenstelle ist aktiviert"
    56. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    57. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    58. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    59. .ReadOnly = True
    60. End With
    61. For I = 12 To 23
    62. With .Columns(I)
    63. .ToolTipText = MBDLL.MB.Funktion.Kalender_Monatsname(CInt(.HeaderText)) & " " & IB.Objekt.Buchungsjahr.ToString
    64. .HeaderText = Strings.Left(.ToolTipText, 3) & "."
    65. .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    66. .HeaderCell.Style.Alignment = .DefaultCellStyle.Alignment
    67. .AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    68. .ReadOnly = False ' Muss eigentlich nicht gesetzt werden
    69. End With
    70. Next I
    71. I = 0
    72. End With


    Das Feld RE-Nummer ist änderbar.
    Was übersehe ich da?
    Gruß Markus
    @Westerwälder Wie und wo weist Du denn den CheckBoxen einen Wert zu?
    Per Code oder per Mausklick?
    Per Code:
    .Value = True|False
    Besser ist es, dem DGV eine passende DataTable als DataSource zuzuweisen.
    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!
    Was sind denn diese Columns 12-23? Außer in der For-Schleife sehe ich keinen Bezug. Oder ist das oben noch drin? Kann ich nicht erkennen. Wie ist das DGV im Designer eingerichtet? Was sagt der SmartTag: Das der Benutzer das DGV bearbeiten?

    Ich würde eher die Daten in nem tDS-Designer modellieren und die DGV-Eigenschaften im Designer festlegen, aber Deine Entscheidung.
    Was hat es mit Zeile#80 auf sich? I ist da nicht mehr definiert. Zumindest für den gezeigten Codeblock.
    Und: Zeile#72: Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden. Strings.Left ist aus dem VB6-Namespace.
    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.
    Da mir Access momentan nicht zur Verfügung steht, konnte ich es nur "offline" machen. Klappt soweit. Es wäre allerdings (zumindest das nächste Mal) einfacher, die ganze Geschichte einzudampfen: Hat der Code denn überhaupt einen Einfluss auf das Problem? Die DGV-Formatierungsangaben und ToolTipText-Setzungen doch sicher nicht. Was passiert denn, wenn Du nur die DataSource setzt und den Rest auskommentierst? Wenn das klappt, dann schrittweise alles wieder aktivieren, bis die problematischen Zeilen gefunden sind. Wenn auch das Setzen der DataSource allein schon das Problem aufzeigt: Na dann gibt's heute abend roten Hering.
    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.

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

    Habe nun alles weg, bis auf Datasource.

    Gleiches Ergebnis.
    Textboxen lassen sich bearbeiten, Checkboxen nicht.


    Na dann gibt's heute abend roten Hering. Sieht wohl so aus.

    Nachdem ich das DGV gelöscht und durch ein neues ersetzt habe, funktioniert nun die Sache.
    Keine Ahnung was da nun falsch eingestellt war, da es sich ja ausschließlich auf die Checkboxen auswirkte.
    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Westerwälder“ ()