تقييم الموضوع :
  • 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 9 297 06-08-19, 02:29 AM
آخر رد: أمجد وضاح
  [VB.NET] مراجعة الاسم قبل التعديل بقاعدة البيانات محمد اسماعيل 10 234 03-08-19, 01:03 AM
آخر رد: محمد اسماعيل
  جملة استعلام لاتعمل بعد التحول من اكسس الي سيكول makky 0 56 25-07-19, 04:07 AM
آخر رد: makky
  [ تمّ الحل ] : إختفاء الأدوات داخل الفورم عبد العزيز البسكري 7 317 10-06-19, 02:05 PM
آخر رد: sendbad100
  [ تمّ الحل ] : تنسيق التاريخ بقاعدة البيانات : الأكسس عبد العزيز البسكري 16 1,100 03-06-19, 11:56 AM
آخر رد: سعود
  [VB.NET] طريقة عمل جملة for بطريقة صحيحة larbihamri 3 241 26-04-19, 08:15 PM
آخر رد: elgokr
  تم الحل : اضافة ازرار التنقل بين السجلات محمد خيري 5 298 26-04-19, 06:16 PM
آخر رد: elgokr
  تم الحل : تحويل كود لى الدوت نت العيدروس 9 368 24-04-19, 05:08 AM
آخر رد: elgokr
Rainbow (تم الحل )احتاج مساعدة حول خطأ system.accessviolationexception was unhandled dametucorazon 5 189 22-04-19, 12:47 AM
آخر رد: elgokr
  تم الحل : استعلام من 3 جداول العيدروس 8 292 13-04-19, 12:50 AM
آخر رد: العيدروس

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


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