Sprache: VB
Oft benötigte Properties von Controls schnell zentral ausführen.
Schnell und unkompliziert.
Beispiel: ControlsPropChanger(ControlPropList.EnabledOn, TextBox1, Label1, Button1,…)
Enum ControlPropList
VisibleOn
VisibleOff
EnabledOn
EnabledOff
ClearText
End Enum
''' <summary>
''' Änderung von Eigenschaften mehrerer Control-Objekte
''' </summary>
''' <param name="e"></param>
''' <param name="Ctrls"></param>
''' <remarks></remarks>
Private Sub ControlsPropChanger(ByVal e As ControlPropList, ByVal ParamArray Ctrls() As Control)
For Each Ctrl As Control In Ctrls
With Ctrl
Select Case e
Case ControlPropList.ClearText : .Text = String.Empty
Case ControlPropList.EnabledOff : .Enabled = False
Case ControlPropList.EnabledOn : .Enabled = True
Case ControlPropList.VisibleOff : .Visible = False
Case ControlPropList.VisibleOn : .Visible = True
End Select
End With
Next
End Sub
Enum ControlPropList
VisibleOn
VisibleOff
EnabledOn
EnabledOff
ClearText
End Enum
''' <summary>
''' Änderung von Eigenschaften mehrerer Control-Objekte
''' </summary>
''' <param name="e"></param>
''' <param name="Ctrls"></param>
''' <remarks></remarks>
Private Sub ControlsPropChanger(ByVal e As ControlPropList, ByVal ParamArray Ctrls() As Control)
For Each Ctrl As Control In Ctrls
With Ctrl
Select Case e
Case ControlPropList.ClearText : .Text = String.Empty
Case ControlPropList.EnabledOff : .Enabled = False
Case ControlPropList.EnabledOn : .Enabled = True
Case ControlPropList.VisibleOff : .Visible = False
Case ControlPropList.VisibleOn : .Visible = True
End Select
End With
Next
End Sub
Alte URL:
/snippet/oft-benoetigte-properties-von-controls-schnell-zentral-ausfueh/693
Ich würde das ganze eher mit einem Delegaten gestalten:
[code]Delegate Sub ChangeProperty(control As Control)
Public Sub ChangeProperties(changer As ChangeProperty, ParamArray controls As Control())
For Each Control As Control In controls
changer(Control)
Next
End Sub[/code]
Dadurch wäre der Code allgemeiner und häufiger anwendbar. Der Aufruf könnte dann so aussehen:
[code]ChangeProperties(Sub(control) control.Visible = False, Button1, CheckBox1, TextBox1)[/code]