05-11-24, 09:16 PM
06-11-24, 12:13 AM
وعليكم السلام ورحمة الله وبركاته
إما الحل العادي :
أو بحسب (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
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 Sub06-11-24, 01:17 AM
شكرا جزيلا أخ طه ربنا يبارك فيك و يحفظك و يسعدك ان شاء الله .فقط أخ طه اعذرني ان لم أكتب ملاحظة أنه عندي مجموعة اخرى من التشك بكس على الفورم ولا اريدها ان تددخل في الحساب . هل من الممكن ان اتجنب عبارة for each control لانها الكود سوف يحتسبلي كل التشكات بكس يلي على الفورم يعني ممكن بعد اذنك احسب بطريقة اخرى و بارك الله فيك
06-11-24, 02:10 AM
تخيل أن هناك اختراع اسمه الـ (GroupBox) ضع واحدة على النافذة واجعل اسمها مثلاً (GroupBox1) واسحب ما تريد التنفيذ عليها من ال(CheckBox) ضمنها
ثم عدل الكود بحيث يصبح :
ثم عدل الكود بحيث يصبح :
كود :
For Each ctrl As Control In Me.GroupBox1.Controls06-11-24, 12:49 PM
الطريقة لا تنفع اخي طه لاني ساوزعهم على مناطق كثيرة على صورة الخريطة و مع ذلك بارك الله فيك و جزاك خيرا و رزقك من حيث لا تحتسب ما قصرت
06-11-24, 04:41 PM
طريقة ثانية لكود الأخ(Taha Okla)
PHP كود :
Public Class Form1
Private Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles _
CheckBox1.CheckedChanged, CheckBox2.CheckedChanged,
CheckBox3.CheckedChanged, CheckBox4.CheckedChanged,
CheckBox5.CheckedChanged
Dim checks() As CheckBox = {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5}
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 Object, ByVal e As EventArgs) Handles _
CheckBox6.CheckedChanged, CheckBox7.CheckedChanged,
CheckBox8.CheckedChanged, CheckBox9.CheckedChanged,
CheckBox10.CheckedChanged
Dim checks() As CheckBox = {CheckBox6, CheckBox7, CheckBox8, CheckBox9, CheckBox10}
TextBox2.Text = (From cb In checks
Where cb.Checked
Order By cb.Text
Select cb.Checked).Count
End Sub
End Class
06-11-24, 05:37 PM
بالرغم من أن طريقة الأخ (Zuhare ) هي الأبسط والأفضل،،
ولكن يمكنك التعديل على الكود السابق بحيث :
لو أن ما تريد العمل عليه تعيد تسميته بإضافة رمز ما (g) مثلا فيصبح(gCheckBox) لكل واحدة منها،
فيصبح الكود :
ملاحظة : كان بإمكانك التفكير بأحد هذه الطرق على نفس الكود لكن لعدم اهتمامك بالأساسيات، لم تفهم الكود وقمت بالتطبيق ووتظن أنه حالة خاصة..
مع العلم أن ما قمنا عليه أنا والأخ (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 ) هو تغيير بسيط ع نفس الكود .. وأعطى نتيجة مختلفة وكما نريد بالضبط ..
يفضل أن تقوم دوما ودوريا بمشاهدة فيديوهات لشرح الأساسيات في الفيجول بيزك وغيرها (الخوارزميات على أي لغة) وستتعلم منها الكثير الكثير ..
06-11-24, 08:38 PM
شكرا لكما الاخ Zuhare و الاخ طه و جزاكما كل خير ان شاء الله