الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكننى ازالة علامة CheckBox الموجود داخل اى GroupBox فقط ؟

بدأه red_scorpion1 في 31 مايو 2013 · 2 رد · 555 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

لدى شاشة تعديل بيانات شهرية للموظفين ومنها يتم إختيار الجزء المطلوب تعديله عن طريق checkbox وهما جميعا موجوين داخل اكثر من groupbox ما عدا ( 2 تشك بوكس ) خارج الجروب بوكس واستخدمهم فى تحديد نوع البحث كالتالى:

 

post-41085-0-08832100-1369972527_thumb.j

 

وعند إستخدامى للكود التالى فهو يقوم بإزالة العلامة من اى تشك بوكس داخل الفورم

 

        void UncheckAll(Control Ctrl)
        {
            CheckBox ChkBox = Ctrl as CheckBox;

            if (ChkBox == null)
            {
                foreach (Control Child in Ctrl.Controls)
                {
                    UncheckAll(Child);
                }
            }
            else
            {
                ChkBox.Checked = false;
            }
        }

 

وعند محاولتى الكود التالى

 

        void cltt()
        {
            foreach (CheckBox item in GroupBox9.Controls)
            {
                if (item.Checked == true)
                {
                    item.Checked = false;
                }
            }
        }

 

تظهر تلك الرسالة

 

 

اقتباس

Unable to cast object of type 'System.Windows.Forms.Label' to type 'System.Windows.Forms.CheckBox'

 

واذا تم حلها بالكود الأخير سأضطر لكتابة الكود لكل groubbox :mad:

 

فهل من توضيح لكيفية ازالة العلامة من اى checkbox يكون داخل اى groupbox فقط وليس داخل الفورم بالكامل ؟؟

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 31 مايو 2013 في 07:05

#3

أشكرك أخى العزيز محمد نجحت الطريقة بالكود التالى والحمد لله

 

        void cltt()
        {
            foreach (Control ctrl in GroupBox9.Controls)
            {
                if (ctrl is CheckBox)
                {
                    ((CheckBox)ctrl).Checked = false;
                }
            }
        }

والمشكلة الأن هل يمكننى وضع أكثر من groupbox فى الكود السابق لأننى هنا مضطر لكتابة كود منفصل لكل groupbox ؟؟

 

أو بمعنى أخر كيف يمكننى تطبيق الكود السابق على جروب بوكس داخل الفورم ؟

 

جربت الكود التالى ولكنه ينطبق على groubbox واحد فقط

ولا ادرى لماذا بالرغم من عدم تحديدى هنا لإسم groubbox

 

            foreach (Control GB in this.Controls)
            {
                if (GB is GroupBox)
                {
                    foreach (Control checkbox in GB.Controls)
                    {
                        if (checkbox is CheckBox)
                        {
                            ((CheckBox)checkbox).Checked = false;
                        }
                    }
                }
            }

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 31 مايو 2013 في 15:08

مواضيع مشابهة