أخوتي أحتاج إلى مراجعة لهذا الكود وهل صياغة جملة FOR بهذه الطريقة صحيحة أم هناك إختصار لهذا الكود
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
For I = 0 To TabPage1.Controls.Count - 1
If TypeOf TabPage1.Controls(I) Is TextBox Then
If String.IsNullOrEmpty(TabPage1.Controls(I).Text) Then
TabPage1.Controls(I).BackColor = Color.Red
Else
TabPage1.Controls(I).BackColor = Color.White
End If
End If
For VM = 0 To TabPage2.Controls.Count - 1
If TypeOf TabPage2.Controls(VM) Is TextBox Then
If String.IsNullOrEmpty(TabPage2.Controls(VM).Text) Then
TabPage2.Controls(VM).BackColor = Color.Red
Else
TabPage2.Controls(VM).BackColor = Color.White
End If
End If
Next
Next
End Sub
End Class
يوجد اختصار وهذا هو الكود
For Each pg As TabPage In TabControl1.TabPages
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
Next
Next
(03-04-19, 06:30 PM)بدري كتب : [ -> ]يوجد اختصار وهذا هو الكود
For Each pg As TabPage In TabControl1.TabPages
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
Next
Next
أشكرك كل الشكر أخي بدري أنت حقاً مبدع بارك الله فيك
أخي من فضلك طلب أخر
من خلال الكود السابق لنفرض أنه لدي في كل TabPage عدد معين من حقول النص ولدي Label في كل TabPage في هذه الحالة أريد أن يجمع قيم نصوص التكست ويضهرها في نص Label
أعلم أنه أمر معقد بالنسبه لي ولاكن أنت لايصعب الأمر عليك
شكراً أخي
هذا الكود يقوم فجمع قيم TextBox لكل TabPage
ويضع الناتج في Label الموجود في نفس TabPage
For Each pg As TabPage In TabControl1.TabPages
Dim lbl As Label = pg.Controls.OfType(Of Label)().First
Dim tot As Single = 0
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
tot += Val(tb.Text)
Next
lbl.Text = tot
Next
(03-04-19, 07:11 PM)بدري كتب : [ -> ]هذا الكود يقوم فجمع قيم TextBox لكل TabPage
ويضع الناتج في Label الموجود في نفس TabPage
For Each pg As TabPage In TabControl1.TabPages
Dim lbl As Label = pg.Controls.OfType(Of Label)().First
Dim tot As Single = 0
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
tot += Val(tb.Text)
Next
lbl.Text = tot
Next
في الحقيقة أخي أنت مبدع بكل معنى الكلمة شكرا لك أستاذي الفاضل لقد إستفذت من حضرتك الكثير الله يوفقك أخي الله لا يحرمنا منك
(03-04-19, 07:28 PM)sads كتب : [ -> ] (03-04-19, 07:11 PM)بدري كتب : [ -> ]هذا الكود يقوم فجمع قيم TextBox لكل TabPage
ويضع الناتج في Label الموجود في نفس TabPage
For Each pg As TabPage In TabControl1.TabPages
Dim lbl As Label = pg.Controls.OfType(Of Label)().First
Dim tot As Single = 0
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
tot += Val(tb.Text)
Next
lbl.Text = tot
Next
في الحقيقة أخي أنت مبدع بكل معنى الكلمة شكرا لك أستاذي الفاضل لقد إستفذت من حضرتك الكثير الله يوفقك أخي الله لا يحرمنا منك

أخي سامحني إضافة بسيطة لم أتمكن منها وهي أنه مثلاُ داخل TabPage1 يوجد عدد 3 حقول تكست و TabPage2 يوجد بها 4 حقول تكست أحتاج عند جمع الحقول في Label لكل TabPage أن يقسمها على عدد الحقول الموجوده بها.
لم استطيع ان افهم!
ماذا تقصد ان يقسمها على عدد الموجوده بها؟!
(03-04-19, 08:41 PM)بدري كتب : [ -> ]لم استطيع ان افهم!
ماذا تقصد ان يقسمها على عدد الموجوده بها؟!
مثلاً يوجد ثلاتة حقول تكست ومجموع القيمة في أداة Label مثلا 20 إذا 20/3
لا ادري ان كنت فمتك بشكل صحيح
هذا الكود يحسب المتوسط لمجموع كل الدرجات
Dim total As Single = 0
For Each pg As TabPage In TabControl1.TabPages
Dim lbl As Label = pg.Controls.OfType(Of Label)().First
Dim tot As Single = 0
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
tot += Val(tb.Text)
Next
lbl.Text = tot
total += tot
Next
Dim av = total / TabControl1.TabPages.Count
MsgBox(av)
(03-04-19, 08:52 PM)بدري كتب : [ -> ]لا ادري ان كنت فمتك بشكل صحيح
هذا الكود يحسب المتوسط لمجموع كل الدرجات
Dim total As Single = 0
For Each pg As TabPage In TabControl1.TabPages
Dim lbl As Label = pg.Controls.OfType(Of Label)().First
Dim tot As Single = 0
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
tot += Val(tb.Text)
Next
lbl.Text = tot
total += tot
Next
Dim av = total / TabControl1.TabPages.Count
MsgBox(av)
عذراً أستاذي لم يكن هذا طلبي - سأوضح لك أكثر -
ألم تقم بجمع قيمة حقول النص في كل TabPage على حده و من ثم أظهرت لي مجموع هذه القيم على أداة Label تمام أخي إلى هنا الأن أريد أن تعرف عدد الحقول المجموعة في TabPage1 مثلاً ومن ثم تقسمها على قيمة Label الموجودة على نفس TabPage مثل TabPage1 ونطبق السابق على باقي TabPage المتبقية
وهذا الكود هو معدل كل TabPage لوحده
بحيث تكون القيمه في Label الموجوده في TabPage
هي متوسط مجموع TextBox في نفس TabPage
For Each pg As TabPage In TabControl1.TabPages
Dim lbl As Label = pg.Controls.OfType(Of Label)().First
Dim tot As Single = 0
For Each tb As TextBox In pg.Controls.OfType(Of TextBox)()
If String.IsNullOrEmpty(tb.Text.Trim) Then
tb.BackColor = Color.Red
Else
tb.BackColor = Color.White
End If
tot += Val(tb.Text)
Next
lbl.Text = tot / pg.Controls.OfType(Of TextBox)().Count
Next