بنيات التحكم المتداخلة

يمكنك وضع عبارات عنصر التحكم داخل عبارات تحكم أخرى على سبيل المثال المقطع If...Then...Else داخل تكرار حلقي For...Next. وضع عبارة عنصر تحكم داخل عبارة عنصر تحكم آخر تدعى تداخل.

مستويات التداخل

بنيات عنصر تحكم في Visual Basic يمكن أن تتداخل بعدد المستويات التي تريده. يعد إجراءاً شائعةً جعل البنيات المتداخلة أكثر قابلية للقراءة عن طريق التحريك كل نص إلى مستوى أدنى. يقوم محرر بيئة التطوير المتكاملة (IDE) بذلك تلقائياً.

في المثال التالي، الإجراء sumRows يقوم بإضافة العناصر الموجبة لكل صف من المصفوفة معاً.

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

في المثال السابق، تغلق عبارة Next الأولى التكرار الحلقي For الداخلي، وتغلق عبارة Next الأخيرة، التكرار الحلقي For الخارجي.

كذلك، في عبارات If المتداخلة، تطبق عبارات End If تلقائياً إلى أقرب عبارة If سابقة. التكرارات الحلقية Do المتداخلة تعمل بطريقة مشابهة, مع عبارة Loop الأكثر عمقاً المطابقة لعبارة Do الأكثر عمقاً.

ملاحظة

للحصول على العديد من بنيات عناصر التحكم، عندما تقوم بالنقر على كلمة أساسية، يتم تحديد كل الكلمات الأساسية في البنية. و للحصول على مثيل ، عند النقر فوق If في إنشاء If...Then...Else كل مثيلات If, Then, ElseIf, Else، و End If يتم تحديدها في الإنشاء. للانتقال إلى الكلمة الأساسية المحددة التالية أو السابقة، اضغط زر Ctrl + Shift + السهم السفلي أو زر Ctrl + Shift + السهم العلوي. لمزيد من المعلومات، راجع How to: Use Reference Highlighting.

تداخل أنواع مختلفة من بنيات عنصر التحكم

يمكنك القيام بتداخل نوع بنية عنصر تحكم داخل نوع بنية آخر. يستخدم المثال التالي مقطع With داخل تكرار حلقي For Eachو مقاطع If متداخلة داخل مقطع 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

تراكب بنيات عنصر تحكم

لا يمكنك أن تقوم بتراكب بنيات عنصر تحكم. وهذا يعني أن أي بنية متداخلة يجب أن تكون موجودة تماماً داخل البنية الأكثر عمقاً التالية. على سبيل المثال، الترتيب التالي غير صحيح لأن التكرار الحلقي For ينتهي قبل إنتهاء المقطع With الداخلي.

تداخل غير صالح لبنيات For و With.

الرسم التخطيطي للرسم الخاص بتداخل غير صالح

برنامج التحويل البرمجي Visual Basic يكتشف مثل هذا التراكب لبنيات عناصر التحكم و يشير إلى خطأ في وقت التحويل البرمجي.

راجع أيضًا:

المهام

كيفية القيام بما يلي: نقل عنصر تحكم خارج بنية عنصر تحكم

المبادئ

بنيات القرار

بنيات التكرار الحلقي

بنيات التحكم الأخرى

موارد أخرى

عنصر تحكم التدفق في Visual Basic