Bagikan melalui


Struktur Kontrol Berlapis (Visual Basic)

Anda dapat menempatkan pernyataan kontrol di dalam pernyataan kontrol lainnya, misalnya sebuah blok If...Then...Else di dalam sebuah perulangan For...Next. Pernyataan kontrol yang ditempatkan di dalam pernyataan kontrol lain dikatakan bersarang.

Tingkat Penyusunan Bertingkat

Struktur kontrol di Visual Basic dapat disarangkan ke tingkat sebanyak yang Anda inginkan. Adalah praktik umum untuk membuat struktur berlapis lebih mudah dibaca dengan mengindentasi bagian dalam setiap struktur. Editor lingkungan pengembangan terintegrasi (IDE) secara otomatis melakukan ini.

Dalam contoh berikut, prosedur sumRows menambahkan bersama-sama elemen positif dari setiap baris matriks.

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  

Dalam contoh sebelumnya, pernyataan pertama Next menutup perulangan dalam For dan pernyataan terakhir Next menutup perulangan luar For .

Demikian juga, dalam pernyataan berlapis If, pernyataan End If secara otomatis berlaku untuk pernyataan If sebelumnya yang terdekat. Perulangan bersarang Do bekerja dengan cara yang sama, dengan pernyataan terdalam Loop yang cocok dengan pernyataan terdalam Do.

Nota

Untuk banyak struktur kontrol, saat Anda mengklik kata kunci, semua kata kunci dalam struktur disorot. Misalnya, ketika Anda mengklik If dalam konstruksi If...Then...Else, semua instans If, Then, ElseIf, Else, dan End If dalam konstruksi tersebut disorot. Untuk berpindah ke kata kunci berikutnya atau sebelumnya yang disorot, tekan CTRL+SHIFT+PANAH BAWAH atau CTRL+SHIFT+PANAH ATAS.

Menyusun Berbagai Jenis Struktur Kontrol

Anda dapat menyisipkan satu jenis struktur kontrol dalam jenis lainnya. Contoh berikut menggunakan blok With di dalam perulangan For Each dan blok If bersarang di dalam blok With.

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  

Struktur Kontrol Tumpang Tindih

Anda tidak dapat tumpang tindih struktur kontrol. Ini berarti bahwa struktur berlapis apa pun harus sepenuhnya terkandung dalam struktur paling dalam berikutnya. Misalnya, pengaturan berikut tidak valid karena perulangan For berakhir sebelum blok dalam With berakhir.

Diagram yang memperlihatkan contoh penyusunan sarang yang tidak valid.

Pengkompilasi Visual Basic mendeteksi struktur kontrol yang tumpang tindih dan menandakan kesalahan waktu kompilasi.

Lihat juga