بنيات التحكم المتداخلة
يمكنك وضع عبارات عنصر التحكم داخل عبارات تحكم أخرى على سبيل المثال المقطع 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 يكتشف مثل هذا التراكب لبنيات عناصر التحكم و يشير إلى خطأ في وقت التحويل البرمجي.
راجع أيضًا:
المهام
كيفية القيام بما يلي: نقل عنصر تحكم خارج بنية عنصر تحكم