Zagnieżdżonych struktur kontroli (Visual Basic)
Można umieścić instrukcje sterujące wewnątrz innych sprawozdań z kontroli, na przykład If...Then...Else zablokować w ramach For...Next pętli.Oświadczenie formant umieszczony wewnątrz innej instrukcji sterowania jest nazywany zagnieżdżonych.
Poziomy zagnieżdżania
Sterowanie struktur w Visual Basic można zagnieżdżać na dowolnej ilości poziomów.Jest typową praktyką czytelność zagnieżdżonych struktur przez wcięcia treści każdego z nich.Edytor zintegrowanego rozwoju środowiska (IDE) automatycznie wykonuje to zadanie.
W poniższym przykładzie procedura sumRows ze sobą dodaje pozytywnych elementów każdy wiersz macierzy.
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
W poprzednim przykładzie pierwszy Next instrukcji zamyka wewnętrznej For pętli i ostatniego Next instrukcji zamyka zewnętrznego For pętli.
Podobnie, zagnieżdżone w If sprawozdań, End If sprawozdań automatycznie stosuje się do najbliższego przed If instrukcji.Zagnieżdżone Do pętli działa w podobny sposób, w skrajnym polu Loop instrukcji dopasowania skrajnym polu Do instrukcji.
[!UWAGA]
Po kliknięciu słowa kluczowego, wszystkie słowa kluczowe w strukturze są dla wielu struktur sterujących, wyróżnione.Na przykład po kliknięciu If w If...Then...Else budowy, wszystkie wystąpienia If, Then, ElseIf, Else, i End If w budowie są wyróżnione.Aby przejść do następnego lub poprzedniego wyróżnionego słowa kluczowego, naciśnij klawisz strzałki CTRL + SHIFT + Strzałka w dół lub CTRL + SHIFT + STRZAŁKA.
Zagnieżdżanie różne rodzaje struktur kontroli
Można zagnieździć jeden rodzaj kontroli strukturę wewnątrz innego rodzaju.W poniższym przykładzie użyto With zablokować wewnątrz For Each zagnieżdżone w pętli i If blokuje wewnątrz 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
Nakładające się struktur kontroli
Nie mogą nakładać się struktur kontroli.Oznacza to, każdą strukturę zagnieżdżonej muszą być całkowicie zawarte w ciągu następnego wewnętrzne struktury.Na przykład, następujący układ jest nieprawidłowa ponieważ For pętli przed wewnętrznej With kończy bloku.
Nieprawidłowy zagnieżdżanie dla i struktury
Visual Basic Kompilatora wykryje takiej kontroli nakładających się struktur i sygnalizuje błąd kompilacji.
Zobacz też
Koncepcje
Decyzja struktur (Visual Basic)
Struktura pętli (Visual Basic)
Innych struktur kontroli (Visual Basic)