Gewusst wie: Ausführen von mehreren Aktionen für ein Objekt

Aktualisiert: November 2007

In Visual Basic müssen Sie im Allgemeinen ein Objekt in jeder Anweisung angeben, die eine seiner Methoden aufruft oder auf eine seiner Eigenschaften zugreift. Wenn Sie jedoch eine Reihe von Anweisungen haben, die alle dasselbe Objekt bearbeiten, können Sie mit einer With...End With-Struktur das Objekt einmal für alle Anweisungen angeben. Dadurch werden die Prozeduren schneller, und Sie vermeiden wiederholte Eingaben.

Beispiel

Im folgenden Beispiel werden die Vordergrundfarbe und der Schriftschnitt einer Label-Klasse in Abhängigkeit vom Wert eines Prozedurarguments festgelegt.

Imports draw = System.Drawing
' The preceding statement must appear at the beginning of the source file.
Dim alertLabel As New System.Windows.Forms.Label
Sub alertUser(ByVal value As Long)
    With alertLabel
        If value = 0 Then
            .ForeColor = draw.Color.Red
            .Font = New draw.Font(.Font, draw.FontStyle.Bold Or draw.FontStyle.Italic)
        Else
            .Forecolor = draw.Color.Black
            .Font = New draw.Font(.Font, draw.FontStyle.Regular)
        End If
    End With
End Sub

Sie sehen, dass Schriftschnitte mit dem Or-Operator (Visual Basic) kombiniert werden. Dadurch wird die gewünschte Kombination der Bitflags angegeben. Der And-Operator (Visual Basic) würde 0 erzeugen, da alle FontStyle-Enumerationsmember andere Bits verwenden.

Beachten Sie außerdem die Verwendung der Imports-Anweisung (.NET-Namespace und Typ). Mit dieser Anweisung wird der Importalias draw eingerichtet, der bewirkt, dass alle Verweise auf System.Drawing-Member kürzer und leichter lesbar werden.

Sie können With...End With-Anweisungen auch schachteln, indem Sie sie wie im folgenden Beispiel ineinander stellen:

Sub setupForm()
    Dim anotherForm As New System.Windows.Forms.Form
    Dim button1 As New System.Windows.Forms.Button
    With anotherForm
        .Show()
        .Top = 250
        .Left = 250
        .ForeColor = System.Drawing.Color.LightBlue
        .BackColor = System.Drawing.Color.DarkBlue
        .Controls.Add(button1)
        With .Controls.Item(1)
            .BackColor = System.Drawing.Color.Thistle
            .Text = "Text on button1"
        End With
    End With
End Sub

In der geschachtelten With-Anweisung gilt die Syntax für das geschachtelte Objekt. Die Eigenschaften des Objekts in der äußeren With-Anweisung werden nicht festgelegt.

Siehe auch

Aufgaben

Gewusst wie: Übertragen der Steuerung aus einer Kontrollstruktur

Gewusst wie: Freigeben einer Systemressource

Gewusst wie: Beschleunigen des Zugriffs auf ein Objekt mit langem Qualifizierungspfad

Konzepte

Entscheidungsstrukturen

Schleifenstruktur

Weitere Steuerungsstrukturen

Geschachtelte Steuerungsstrukturen

Referenz

With...End With-Anweisung (Visual Basic)

Weitere Ressourcen

Ablaufsteuerung in Visual Basic