Feedback

VB - Oft benötigte Properties von Controls schnell zentral ausfüh

Veröffentlicht von am 22.11.2007
(2 Bewertungen)
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
Abgelegt unter Control, Textbox, Label, Button.

1 Kommentare zum Snippet

Koopakiller schrieb am 30.11.2013:
Ich würde das ganze eher mit einem Delegaten gestalten:
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

Dadurch wäre der Code allgemeiner und häufiger anwendbar. Der Aufruf könnte dann so aussehen:
ChangeProperties(Sub(control) control.Visible = False, Button1, CheckBox1, TextBox1)
 

Logge dich ein, um hier zu kommentieren!