Feedback

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

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

1 Kommentar

  1. 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]