Udostępnij za pośrednictwem


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

Graficzny diagram nieprawidłowego zagnieżdżenia

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)

Inne zasoby

Przepływ sterowania w języku Visual Basic