Vnořené struktury řízení (Visual Basic)
Můžete například umístit ovládací příkazy uvnitř jiné příkazy řízení If...Then...Else blokovat v For...Next smyčky.Prohlášení ovládací prvek umístěn uvnitř jiného ovládacího prvku je označováno jako vnořené.
Vnořování úrovní
Řízení struktury v Visual Basic mohou být vnořené na libovolný počet úrovní.Je běžnou praxí čitelnost vnořené struktury zvětšením odsazení každého subjektu.Editor integrované vývojové prostředí (IDE) automaticky provádí.
V následujícím příkladu postup sumRows sečte pozitivních prvků každého řádku matice.
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
V předchozím příkladu první Next prohlášení zavře vnitřní For smyčky a poslední Next příkaz ukončí vnější For smyčky.
Podobně, vnořené v If příkazy, End If příkazy automaticky použita nejbližší před If prohlášení.Vnořené Do smyčky pracovat podobně, s nejvnitřnějším Loop prohlášení odpovídající nejvnitřnějším Do prohlášení.
[!POZNÁMKA]
Pro mnoho řídících strukturu platí, že když kliknete na klíčové slovo, všechna klíčová slova ve struktuře jsou zvýrazněna.Například po klepnutí na tlačítko If v If...Then...Else konstrukci, všechny instance If, Then, ElseIf, Elsea End If v konstrukci, jsou zvýrazněny.Chcete-li přesunout další nebo předchozí zvýrazněné klíčové slovo, stiskněte CTRL + SHIFT + ŠIPKA DOLŮ nebo CTRL + SHIFT + Šipka nahoru.
Vnoření různé druhy struktury řízení
Můžete vnořit jeden druh strukturu řízení v rámci jiného druhu.V následujícím příkladu With blokovat uvnitř For Each smyčka a vnořené If blokuje uvnitř With bloku.
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
Překrývající se ovládací struktury
Nemůže překrývat struktury řízení.To znamená, že jakékoliv vnořené struktury musí být zcela obsažené v další vnitřní strukturu.Například následující ujednání je neplatný protože For smyčky ukončí před vnitřní With bloku ukončí.
Neplatný vnoření struktur a pro
Visual Basic Zjistí takové překrývající se ovládací prvek struktur a signalizuje chybu v době kompilace.
Viz také
Koncepty
Rozhodnutí struktur (Visual Basic)
Další struktury řízení (Visual Basic)