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.