Auslesen einer Checkbox

  • VB.NET

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

    Auslesen einer Checkbox

    Hallo zusammen,

    Erst einmal zusagen ist ich war bereits im Forum unterwegs und hab versucht mein Problem per SUFU zu lösen, jedoch war für mein Problem keine Lösung dabei.

    Zum Problem:

    Ich möchte Checkboxen auslesen ob sie angekreuzt sind/einen Haken haben. Außerdem wenn sie einen Haken/Kreuz haben soll sie als 1 abgespeichert werden wenn nicht dann als 0. Zur Info ich brauch dies für ein Lottospiel....

    Viele Grüße

    Nightshooter

    VB.NET-Quellcode

    1. System.IO.File.WriteAllText("datei", If(CheckBox1.Checked, "1", "0"))
    Allerdings ist diese Methode für viele Werte sehr unpraktisch und aufwendig.
    Zeig mal, wie die Werte gespeichert werden. Oder hast du nur viele CheckBoxen?

    haiyyu schrieb:

    VB.NET-Quellcode

    1. System.IO.File.WriteAllText("datei", If(CheckBox1.Checked, "1", "0"))
    Allerdings ist diese Methode für viele Werte sehr unpraktisch und aufwendig.
    Zeig mal, wie die Werte gespeichert werden. Oder hast du nur viele CheckBoxen?
    Es sind viele Checkboxen. Jetzt noch eine Frage wenn ich die 1-en und 0-en auslesen will wie kann ich sie am besten auslesen. Meine Idee wäre vielleicht per For-Schleife. Sie sollen später mit den Zufallszahlen verglichen werden die mein Zufallsgenerator generiert.

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

    Mal aus dem Kopf, also ohne Garantie

    VB.NET-Quellcode

    1. For Each Control As Control in Me.Controls
    2. If TypeOf(control) is ChechBox = True Then
    3. MeinStatus As Booelean = Control.Checked
    4. End IF
    5. Next


    halt ohne IDE geschrieben

    so solte es gehen

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

    @Bernd:
    If TypeOf(control) is ChechBox = True Then

    Meine Augen! ^^
    Das "= True" schädigt hier wirklich die Lesbarkeit.

    @TE: Wie wäre es, wenn Du Dir Deine CheckBoxen in eine Wrapperklasse packst?
    So in etwa:

    VB.NET-Quellcode

    1. Dim CheckBoxes As New CheckBoxWrapper(CheckBox1, CheckBox2, CheckBox3, ...)
    2. Sub Speichern()
    3. System.IO.File.WriteAllText(Pfad, CheckBoxes.Serialize, Encoding...)
    4. End Sub
    5. Sub Laden()
    6. CheckBoxes.FromSerialized(System.IO.File.ReadAllLines(Pfad, Encoding...))
    7. End Sub
    8. Class CheckBoxWrapper
    9. Dim CheckBoxes As New List(Of CheckBox)
    10. Public Sub New(ByVal ParamArray NewCheckBoxes As CheckBox())
    11. CheckBoxes.AddRange(NewCheckBoxes)
    12. End Sub
    13. 'Zum Abspeichern der Werte
    14. Public Function Serialize() As String
    15. Dim SB As New System.Text.StringBuilder
    16. For Each i As CheckBox In CheckBoxes
    17. 'Der Name des Eintrages muss natürlich irgendwo her
    18. 'z.B. aus dem Namen der CheckBox
    19. SB.AppendLine(i.Name & "=" & i.Checked.ToString)
    20. Next
    21. Return SB.ToString
    22. End Sub
    23. 'Zum Auslesen der Werte
    24. Public Sub FromSerialized(Serialized As String())
    25. For Each i As String In Serialized
    26. 'Der Name wird auch hier verwendet
    27. Dim Parts As String() = i.Split("="c)
    28. CheckBoxes.Where(Function(j As CheckBox) j.Name = Parts.First).First.Checked = CBool(Parts.Last)
    29. Next
    30. End Sub
    31. End Class

    So in der Richtung würde ich das machen, wenn es viele CheckBoxen sind.


    Und jetzt kommt ErfinderDesRades und erklärt in 4 Zeilen, wie es mit DataSets funktioniert ^^
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils