İç İçe Geçmiş Denetim Yapıları (Visual Basic)
Örneğin denetim deyimleri diğer denetim deyimleri içine yerleştirebilirsiniz bir If...Then...Else içinde engelleyecek bir For...Next döngü.Başka bir denetim ifade yerleştirilmiş bir denetim ifadesi olduğu söylenir iç içe.
İç içe düzeyleri
Kontrol yapıları, Visual Basic , istediğiniz kadar çok düzeyde iç içe olabilir.Her biri gövde girintisini artırarak iç içe geçmiş yapılar daha kolay okunur hale getirmek için yaygın bir uygulamadır.Tümleşik geliştirme ortamı (IDE) Düzenleyicisi bunu otomatik olarak yapar.
Aşağıdaki örnekte, yordam sumRows pozitif öğelerini matrisinin her satırın bir araya getirir.
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
Önceki örnekte, ilk Next deyimi kapatır iç For döngü ve son Next deyimi kapatır dış For döngü.
Benzer şekilde, içinde iç içe If ifadeleri, End If ifadeleri otomatik olarak uygulamak için en yakın önceki If ifadesi.İç içe Do döngüleri çözüm tıklatılır ile benzer bir şekilde Loop tıklatılır eşleştirme ifadesi Do ifadesi.
[!NOT]
Bir anahtar sözcüğü tıklattığınızda birçok denetim yapıları için tüm yapısı içindeki anahtar sözcükler vurgulanır.Örneğin, tıklattığınızda If , bir If...Then...Else yapım, tüm örneklerini If, Then, ElseIf, Else, ve End If içinde yapım vurgulanır.Sonraki veya önceki vurgulanan anahtar sözcüğe gitmek için ctrl + ÜSTKRKT + AŞAĞI OK veya ctrl + ÜSTKRKT + YUKARI OK tuşlarına basın.
Denetim yapıları farklı türde iç içe geçirme
Başka bir tür denetim yapısında bir tür iç içe yerleştirebilirsiniz.Aşağıdaki örnek bir With içinde engelleyecek bir For Each döngü ve iç içe If içinde engeller With blok.
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
Çakışan denetim yapıları
Denetim yapıları gelemez.Diğer bir deyişle, herhangi bir iç içe geçmiş yapısı tamamen sonraki en içteki yapısı içinde bulunmalıdır.Örneğin, aşağıdaki düzenleme geçersiz olduğundan For döngüsü sonlanýr önce iç With blok sona erer.
Geçersiz Yuvalama, yapıları ve için
Visual Basic Derleyici, üst üste gelen bu tür denetim yapıları ve derleme zamanı hatası sinyalleri algılar.
Ayrıca bkz.
Kavramlar
Çevrim Yapıları (Visual Basic)
Diğer Denetim Yapıları (Visual Basic)