| |

VB.NET - FortgeschritteneRe: Variables Sperren von Checkboxen | |  | Autor: DotNetErbse | Datum: 09.09.11 15:01 |
| ok, nachdem der Anflug von Humor verflogen ist, kannste Dir ja DAS mal ansehen.
Es sollte Dir zumindest veranschaulichen, wie Du die Abhängigkeiten für Deine Checkboxen definieren kannst und wie die logischen Verknüpfungen gestaltet werden könnten.
Das Zusammensetzen der Regeln kannst Du Dir ja dann vornehmen, sollte aber auch nicht so schwer sein.
Vielleicht über einen "Lernmodus" bei dem die zu berücksichtigenden Checkboxen über die rechte Maustaste angeklickt werden, oder so...
Public Class Form1
'1 Form
'1 Panel
'1 Textbox
'1 Button
Private lst_rules As New List(Of String)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
'Regeln für Checkboxen...
tbxRules.Text = "CBX001=CBX002:0;CBX003:0;CBX004:1" & "|" & _
"CBX011=CBX012:1;CBX013:0;CBX014:0"
'Checkboxen erzeugen
CreateCheckboxes()
'Regeln laden
LoadRules()
'Regeln anwenden, später bei jedem Click...
checkRules()
End Sub
Private Sub CreateCheckboxes()
'Erzeugen der 100 Checkboxen...
Dim cbx As CheckBox = Nothing
Dim spalte As Integer = 10
Dim zeile As Integer = 10
Dim spaltenabstand As Integer = 70
Dim zeilenabstand As Integer = 40
Dim nr As Integer = 0
For intZeile As Integer = 1 To 10
spalte = 10
For intSpalte As Integer = 1 To 10
nr += 1
cbx = New CheckBox
With cbx
.Name = "CBX" & Format(nr, "000")
.Left = spalte
.Top = zeile
.Text = .Name
.Width = spaltenabstand
End With
AddHandler cbx.CheckedChanged, AddressOf CBX_CheckedChanged
pnl.Controls.Add(cbx)
spalte += spaltenabstand
Next
zeile += zeilenabstand
Next
End Sub
''' <summary>
''' Regeln laden
''' </summary>
''' <remarks></remarks>
Private Sub LoadRules()
lst_rules.Clear()
lst_rules.AddRange(tbxRules.Text.Split("|"))
End Sub
''' <summary>
''' Regeln checken
''' </summary>
''' <remarks></remarks>
Private Sub checkRules()
Dim result As Boolean = False
'nun die Regeln durchlaufen und checken..., bei jedem CheckedChanged
For Each el As String In lst_rules
'Reststring, hier sind die zu prüfenden Checkboxen und die
' Bedingungen drin
Dim rest As String = el.Split("=")(1)
'Check auf eingestellte Werte
For Each elmt As String In rest.Split(";")
'solange die Bedingung stimmt...
If CType(pnl.Controls(elmt.Split(":")(0)), CheckBox).Checked = ( _
elmt.Split(":")(1) = 1) Then
result = True
Else
'sonst raus
result = False
Exit For
End If
Next
CType(pnl.Controls(el.Split("=")(0)), CheckBox).Enabled = result
Next
End Sub
''' <summary>
''' Anwenden der Regeln
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub btnUseRules_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnUseRules.Click
LoadRules()
End Sub
''' <summary>
''' per AddHandler
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub CBX_CheckedChanged(ByVal sender As System.Object, ByVal e As _
System.EventArgs)
checkRules()
End Sub
End Class Mit freundlichen Gr??en
DotNetErbse
[Es hei?t Paket und nicht Packet, auch wenn Standard augenscheinlich von Standar(t)e kommt,hei?t es dennoch Standar(d)] |  |
 | 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 |
  |
|
Neu! sevDTA 3.0 Pro 
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 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
|
|