تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[تم الحل]مراجعة لكود جملة FOR
#1
أخوتي أحتاج إلى مراجعة لهذا الكود وهل صياغة جملة 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
الرد }}}
تم الشكر بواسطة:
#2
يوجد اختصار وهذا هو الكود
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
الرد }}}
تم الشكر بواسطة: sendbad100 , sads , حريف برمجة
#3
(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
أعلم أنه أمر معقد بالنسبه لي ولاكن أنت لايصعب الأمر عليك
شكراً أخي
الرد }}}
تم الشكر بواسطة: بدري
#4
هذا الكود يقوم فجمع قيم 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
الرد }}}
تم الشكر بواسطة: sads , حريف برمجة
#5
(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

في الحقيقة أخي أنت مبدع بكل معنى الكلمة شكرا لك أستاذي الفاضل لقد إستفذت من حضرتك الكثير الله يوفقك أخي الله لا يحرمنا منك
Shy

(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

في الحقيقة أخي أنت مبدع بكل معنى الكلمة شكرا لك أستاذي الفاضل لقد إستفذت من حضرتك الكثير الله يوفقك أخي الله لا يحرمنا منك
Shy

أخي سامحني إضافة بسيطة لم أتمكن منها وهي أنه مثلاُ داخل TabPage1 يوجد عدد 3 حقول تكست و TabPage2 يوجد بها 4 حقول تكست أحتاج عند جمع الحقول في Label لكل TabPage أن يقسمها على عدد الحقول الموجوده بها.
الرد }}}
تم الشكر بواسطة: حريف برمجة , حريف برمجة , بدري
#6
لم استطيع ان افهم!
ماذا تقصد ان يقسمها على عدد الموجوده بها؟!
الرد }}}
تم الشكر بواسطة:
#7
(03-04-19, 08:41 PM)بدري كتب : لم استطيع ان افهم!
ماذا تقصد ان يقسمها على عدد الموجوده بها؟!

مثلاً يوجد ثلاتة حقول تكست ومجموع القيمة في أداة Label مثلا 20 إذا 20/3
الرد }}}
تم الشكر بواسطة:
#8
لا ادري ان كنت فمتك بشكل صحيح

هذا الكود يحسب المتوسط لمجموع كل الدرجات
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)
الرد }}}
تم الشكر بواسطة:
#9
(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 المتبقية
الرد }}}
تم الشكر بواسطة:
#10
وهذا الكود هو معدل كل 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
الرد }}}
تم الشكر بواسطة: elgokr



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم