| |
VB.NET - Ein- und UmsteigerMehrere 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 | |
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. | |
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. | |
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 | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|
|
|
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
|
|