Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Visual Basic - Checkbox Auswahl begrenzen und restliche unchecked boxen deaktivieren

Frage Entwicklung Visual Studio

Mitglied: Kurdirektor

Kurdirektor (Level 1) - Jetzt verbinden

06.11.2014, aktualisiert 13:25 Uhr, 1331 Aufrufe, 2 Kommentare

Hallo,

ich habe in meinem Programm Checkbox1 bis Checkbox63. Diese sind unterteilt in 3 Bereiche - Jeweils 21 Boxen in einer Gruppe (händisch gruppiert ohne Groupbox!)
Eine Gruppierung durch eine Groupbox ist nicht möglich, da die Checkboxen in eine Picturebox eingearbeitet sind. (Oder ist es doch noch möglich ohne die Grafik in dem Bereich zu beinflussen?)

In jeder Gruppe wird bereits erfasst wie viele Boxen angeklickt wurden.

Jetzt möchte ich aber die Auswahl an Checkboxen auf einen Maximalwert begrenzen und bei erreichen des Maximalwerts sollen alle Checkboxen die den Status "unchecked" haben deaktiviert bzw. für den Benutzer nicht mehr anwählbar sein.
Dafür müsste ich ja dann erst einmal prüfen welche Checkboxen aktiv und welche inaktiv sind.
Googel hat mir da bisher nicht wirklich weiterhelfen können.

Ich bräuchte jetzt Hilfe den Code dafür zu erstellen.

Wäre dies hier eine Möglichkeit?

if Checkboxgroup1 = 5 and Checkbox1.unchecked then
CheckBox1.CanSelect = False
End If

Oder gibt es eine Einfachere Methode per Array?

Vielen Dank im Voraus!


Mitglied: colinardo
LÖSUNG 06.11.2014, aktualisiert um 13:25 Uhr
Hallo Kurdirektor,
Eine Gruppierung durch eine Groupbox ist nicht möglich, da die Checkboxen in eine Picturebox eingearbeitet sind. (Oder ist es doch noch möglich ohne die Grafik in dem Bereich zu beinflussen?)
erklär mal bitte wie du eine Checkbox in eine PictureBox "eingearbeitet" hast ??? wie soll das bitte gehen ?

Am einfachsten ist es die Controls alle in eine GroupBox zu stecken, ich sehe nicht wo hier dein Problem ist.
Dann lassen sich die Controls über die Controls-Eigenschaft iterieren und jeweils prüfen ob sie deaktiviert werden müssen oder nicht.

Als Alternative kannst du den Checkboxen auch in der Eigenschaft Tag ein Gruppentag zuweisen welches du mit einer Schleife über alle Controls in der Form prüfst und dann jeweils deine Aktion an den Checkboxen vornimmst.

Beispiel mit Tags an den Checkboxen:
01.
 Sub checkGroup1() 
02.
     Dim action As Boolean 
03.
 
04.
     'dein Maximalwert prüfen (die Variable 'counter' enthält deine gezählte Anzahl aktivierten Checkboxen) 
05.
     If counter >= 20 Then 
06.
         action = False 
07.
     Else 
08.
         action = True 
09.
     End If 
10.
 
11.
     For Each c As Control In Me.Controls 
12.
         If TypeOf c Is CheckBox Then 
13.
             'Wenn das Tag der Checkbox 'Group1' lautet 
14.
             If c.Tag = "Group1" Then 
15.
                 Dim cb = CType(c, CheckBox) 
16.
                 If cb.Checked = False Then 
17.
                     cb.Enabled = action 
18.
                 End If 
19.
             End If 
20.
         End If 
21.
     Next 
22.
 End Sub
Falls dir das nicht klar sein sollte, hier eine komplette Demo als Visual Studio 2010 Projekt zum Download.

Grüße Uwe
Bitte warten ..
Mitglied: Kurdirektor
06.11.2014 um 13:25 Uhr
Passt, danke
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Visual Basic für anfänger (6)

Frage von Daoudi1973 zum Thema Visual Studio ...

VB for Applications
gelöst Visual Basic persönliche MSTSC Verbindung (3)

Frage von florianza zum Thema VB for Applications ...

Visual Studio
gelöst Remotedienst prüfen mit Visual Basic (1)

Frage von flyingmichael zum Thema Visual Studio ...

Batch & Shell
gelöst AD-Gruppen Auswahl als Dropdownliste (4)

Frage von Peterz zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte