Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Steueranweisungen in anderen Steuerelementanweisungen platzieren, z. B. einen If...Then...Else Block in einer For...Next Schleife. Eine in einer anderen Steuerelementanweisung platzierte Steuerelementanweisung gilt als geschachtelt.
Schachtelungsebenen
Steuerstrukturen in Visual Basic können in beliebig vielen Ebenen geschachtelt werden. Es ist üblich, geschachtelte Strukturen lesbarer zu machen, indem der Text der einzelnen Strukturen eingerückt wird. Der integrierte Entwicklungsumgebungs-Editor (IDE) führt dies automatisch aus.
Im folgenden Beispiel fügt die Prozedur sumRows die positiven Elemente jeder Zeile der Matrix zusammen.
Public Sub sumRows(ByVal a(,) As Double, ByRef r() As Double)
Dim i, j As Integer
For i = 0 To UBound(a, 1)
r(i) = 0
For j = 0 To UBound(a, 2)
If a(i, j) > 0 Then
r(i) = r(i) + a(i, j)
End If
Next j
Next i
End Sub
Im vorherigen Beispiel schließt die erste Next Anweisung die innere For Schleife, und die letzte Next Anweisung schließt die äußere For Schleife.
Ebenso gelten in geschachtelten If-Anweisungen die End If-Anweisungen automatisch für die nächsthöhere If-Anweisung. Geschachtelte Do-Schleifen funktionieren auf ähnliche Weise, wobei die innerste Loop-Anweisung mit der innersten Do-Anweisung übereinstimmt.
Hinweis
Bei vielen Steuerelementstrukturen werden beim Klicken auf ein Schlüsselwort alle Schlüsselwörter in der Struktur hervorgehoben. Wenn Sie beispielsweise in einer Konstruktion auf If klicken, werden alle Instanzen von If...Then...Else, If, Then, ElseIf und Else in der Konstruktion End If hervorgehoben. Um zum nächsten oder vorherigen hervorgehobenen Schlüsselwort zu gelangen, drücken Sie STRG+UMSCHALT+NACH-UNTEN-TASTE bzw. STRG+UMSCHALT+NACH-OBEN-TASTE.
Schachteln verschiedener Arten von Steuerelementstrukturen
Sie können eine Art von Steuerelementstruktur in einer anderen schachteln. Im folgenden Beispiel wird ein With Block in einer For Each Schleife und ein geschachtelter If Block innerhalb des With Blocks verwendet.
For Each ctl As System.Windows.Forms.Control In Me.Controls
With ctl
.BackColor = System.Drawing.Color.Yellow
.ForeColor = System.Drawing.Color.Black
If .CanFocus Then
.Text = "Colors changed"
If Not .Focus() Then
' Insert code to process failed focus.
End If
End If
End With
Next ctl
Überlappende Kontrollstrukturen
Kontrollstrukturen können nicht überlappen. Dies bedeutet, dass jede geschachtelte Struktur vollständig in der nächsten innersten Struktur enthalten sein muss. Die folgende Anordnung ist beispielsweise ungültig, da die For Schleife beendet wird, bevor der innere With Block beendet wird.
Der Visual Basic-Compiler erkennt solche überlappenden Kontrollstrukturen und signalisiert einen Kompilierungszeitfehler.