تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حساب عدد الشيك بكس
#1
السلام عليكم 
اخواني اريد كلما اقوم بالتشييك على اي تشك بكس يظهر بالتاكست بكس 1 مجموع التشيك بوكس المشيك عليها 
بارك الله فيكم


الملفات المرفقة
.rar   WindowsApplication1.rar (الحجم : 33.31 ك ب / التحميلات : 16)
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

إما الحل العادي :
كود :
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles _
                                       CheckBox1.CheckedChanged, CheckBox2.CheckedChanged,
                                       CheckBox3.CheckedChanged, CheckBox4.CheckedChanged,
                                       CheckBox5.CheckedChanged, CheckBox6.CheckedChanged,
                                       CheckBox7.CheckedChanged, CheckBox8.CheckedChanged,
                                       CheckBox9.CheckedChanged, CheckBox10.CheckedChanged
   Dim Ce1 As Int16 = 0
   For Each ctrl As Control In Me.Controls
       If TypeOf ctrl Is CheckBox Then
           If CType(ctrl, CheckBox).Checked = True Then Ce1 += 1
       End If

   Next

   TextBox1.Text = Ce1.ToString

End Sub


أو بحسب (Linq) :

كود :
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles _
                                       CheckBox1.CheckedChanged, CheckBox2.CheckedChanged,
                                       CheckBox3.CheckedChanged, CheckBox4.CheckedChanged,
                                       CheckBox5.CheckedChanged, CheckBox6.CheckedChanged,
                                       CheckBox7.CheckedChanged, CheckBox8.CheckedChanged,
                                       CheckBox9.CheckedChanged, CheckBox10.CheckedChanged

   TextBox1.Text = (From cb In Controls.OfType(Of CheckBox)()
                       Where cb.Checked
                       Order By cb.Text
                       Select cb.Checked).Count

End Sub
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
#3
شكرا جزيلا أخ طه ربنا يبارك فيك و يحفظك و يسعدك ان شاء الله .فقط أخ طه اعذرني ان لم أكتب ملاحظة أنه عندي مجموعة اخرى من التشك بكس على الفورم ولا اريدها ان تددخل في الحساب . هل من الممكن ان اتجنب عبارة for each control لانها الكود سوف يحتسبلي كل التشكات بكس يلي على الفورم يعني ممكن بعد اذنك احسب بطريقة اخرى و بارك الله فيك
الرد }}}
تم الشكر بواسطة:
#4
تخيل أن هناك اختراع اسمه الـ (GroupBox) ضع واحدة على النافذة واجعل اسمها مثلاً (GroupBox1) واسحب ما تريد التنفيذ عليها من ال(CheckBox) ضمنها

ثم عدل الكود بحيث يصبح : 

كود :
For Each ctrl As Control In Me.GroupBox1.Controls
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: العيدروس
#5
الطريقة لا تنفع اخي طه لاني ساوزعهم على مناطق كثيرة على صورة الخريطة و مع ذلك بارك الله فيك و جزاك خيرا و رزقك من حيث لا تحتسب ما قصرت
الرد }}}
تم الشكر بواسطة:
#6
طريقة ثانية  لكود الأخ(Taha Okla)
PHP كود :
Public Class Form1

    Private Sub CheckBox1_CheckedChanged
(ByVal sender As ObjectByVal e As EventArgsHandles _
                                            CheckBox1
.CheckedChangedCheckBox2.CheckedChanged,
 
                                           CheckBox3.CheckedChangedCheckBox4.CheckedChanged,
 
                                           CheckBox5.CheckedChanged

        Dim checks
() As CheckBox = {CheckBox1CheckBox2CheckBox3CheckBox4CheckBox5}

 
       TextBox1.Text = (From cb In checks
                    Where cb
.Checked
                    Order By cb
.Text
                    Select cb
.Checked).Count
    End Sub

    Private Sub CheckBox6_CheckedChanged
(ByVal sender As ObjectByVal e As EventArgsHandles _
                                            CheckBox6
.CheckedChangedCheckBox7.CheckedChanged,
 
                                           CheckBox8.CheckedChangedCheckBox9.CheckedChanged,
 
                                           CheckBox10.CheckedChanged

        Dim checks
() As CheckBox = {CheckBox6CheckBox7CheckBox8CheckBox9CheckBox10}

 
       TextBox2.Text = (From cb In checks
                    Where cb
.Checked
                    Order By cb
.Text
                    Select cb
.Checked).Count
    End Sub

End 
Class 
الرد }}}
تم الشكر بواسطة: Taha Okla , العيدروس , princelovelorn , princelovelorn
#7
بالرغم من أن طريقة الأخ (Zuhare )  هي الأبسط والأفضل،،

ولكن يمكنك التعديل على الكود السابق بحيث :
لو أن ما تريد العمل عليه تعيد تسميته بإضافة رمز ما (g) مثلا  فيصبح(gCheckBox) لكل واحدة منها،
فيصبح الكود :

كود :
Private Sub gCheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles _
               gCheckBox1.CheckedChanged, gCheckBox2.CheckedChanged,
               gCheckBox3.CheckedChanged, gCheckBox4.CheckedChanged,
               gCheckBox5.CheckedChanged, gCheckBox6.CheckedChanged,
               gCheckBox7.CheckedChanged, gCheckBox8.CheckedChanged,
               gCheckBox9.CheckedChanged, gCheckBox10.CheckedChanged

   TextBox1.Text = (From cb In Controls.OfType(Of CheckBox)()
                       Where cb.Checked And cb.Name.Contains("gCheckBox")
                       Order By cb.Text
                       Select cb.Checked).Count

End Sub

ملاحظة : كان بإمكانك التفكير بأحد هذه الطرق على نفس الكود لكن لعدم اهتمامك بالأساسيات، لم تفهم الكود وقمت بالتطبيق ووتظن أنه حالة خاصة..
مع العلم أن ما قمنا عليه أنا والأخ (Zuhare ) هو تغيير بسيط ع نفس الكود .. وأعطى نتيجة مختلفة وكما نريد بالضبط ..
يفضل أن تقوم دوما ودوريا بمشاهدة فيديوهات لشرح الأساسيات في الفيجول بيزك وغيرها (الخوارزميات على أي لغة)  وستتعلم منها الكثير الكثير ..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
#8
شكرا لكما الاخ Zuhare و الاخ طه و جزاكما كل خير ان شاء الله
الرد }}}
تم الشكر بواسطة: Taha Okla



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


يقوم بقرائة الموضوع: