vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Mehrere Checkboxen mit Button aktivieren 
Autor: Tobi89
Datum: 13.09.17 07:02

Guten Morgen zusammen

Ich habe das Programmieren nach ein paar Jahren wieder verlernt, oder ich denke zu kompliziert.

Ich habe 60 Checkboxen welche mit einem Klick auf einem Button alle aktiviert werden sollen.
Da ich auch viele Zeilen sparen möchte, frage ich nach einem Lösungsvorschlag.

Beispiel mit vielen Zeilen:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
  Button1.Click
        CheckBox1.Checked = True
        CheckBox2.Checked = True
        CheckBox3.Checked = True
.......
        CheckBox60.Checked = True
End Sub
Viele Grüße
Tobi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mehrere Checkboxen mit Button aktivieren 
Autor: Manfred X
Datum: 13.09.17 09:14

Hallo!

60 Checkboxen?

Erkläre ein bißchen genauer, was Du erreichen möchtest.
Sind diese Checkboxen z.B. nach ihrer Bedeutung in Gruppen gegliedert?
Verteilen sie sich auf verschiedene Formulare?
Was steuerst Du mit diesen Boxen?
Eventuell gibt es Alternativen.

Im Prinzip kannst Du die generische Klasse List(of ..)
[ d.h. List(of Control), List(of Checkbox) ] nutzen, um den Zugriff auf
die Boxen im Rahmen einer/mehrerer indizierten Liste in Schleifen
zu organisieren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Kleines Beispiel 
Autor: Manfred X
Datum: 13.09.17 10:01

"frmCheckIt" ist ein Windows.Forms-Formular
Public Class frmCheckIt
 
    Dim cbos As New List(Of CheckBox)
    Dim cbo_count As Integer = 60
 
    Dim cbo_height As Integer = 20
    Dim btn_height As Integer = 25
 
    'Button für Invertierung aller Checkboxen 
    Dim WithEvents btnCheck As New Button With _
        {.Parent = Me, .Width = 150, .Height = 25, .Text = "Check"}
 
    Dim checkchanged_handled As Boolean = False
 
    'Panel, Container der Checkboxen
    Dim plCheck As New Panel With _
                 {.Parent = Me, .Top = btn_height + 5, _
                  .Width = 180, .Height = 20 * cbo_height + 20, _
                  .AutoScroll = True, .BorderStyle = BorderStyle.Fixed3D}
 
    'Tooltips für Checkboxen
    Dim ttcheck As New ToolTip
 
 
    Private Sub frmCheckIt_Load(sender As System.Object, _
                                e As System.EventArgs) Handles MyBase.Load
 
        Me.Height = btnCheck.Height + plCheck.Height + 50
 
        For i As Integer = 1 To cbo_count
            'Checkbox erstellen und einrichten
            Dim cbo As New CheckBox With { _
                .Parent = plCheck, _
                .Tag = i, _
                .Text = "Check " & CStr(i), _
                .Top = (i - 1) * cbo_height, _
                .Width = 150}
            'Checkbox-Referenz listen 
            cbos.Add(cbo)
            'Ereignisverarbeitung der Checkbox einrichten
            AddHandler cbo.CheckedChanged, AddressOf cbo_checkedchanged
            'Tooltip erstellen
            ttcheck.SetToolTip _
            (cbo, "Ich bin eine Checkbox. Mein Listen-Index ist " & CStr(i - 1))
        Next i
    End Sub
 
 
    Private Sub cbo_checkedchanged(sender As Object, e As EventArgs)
        Dim cbo As CheckBox = DirectCast(sender, CheckBox)
        If Not checkchanged_handled Then
            MsgBox("Checkbox" & cbo.Text & " wurde geändert")
        End If
    End Sub
 
 
    Private Sub btnCheck_Click(sender As Object, _
                               e As System.EventArgs) Handles btnCheck.Click
 
        checkchanged_handled = True
        For i As Integer = 0 To cbos.Count - 1
            'indizierter Zugriff
            cbos(i).Checked = Not cbos(i).Checked
        Next i
        checkchanged_handled = False
    End Sub
End Class


Beitrag wurde zuletzt am 13.09.17 um 10:11:28 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Direkt-Antwort 
Autor: Manfred X
Datum: 13.09.17 14:53

For i As Integer = 1 To 60
   DirectCast _
   (Me.Controls.Find("CheckBox" & i.ToString, False)(0), CheckBox). _
   Checked = True
Next i
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel