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

بليز ياجماعه شرح للكود ..

بدأه Asmaa.cs في 28 فبراير 2011 · 5 رد · 1,200 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بليز ياجماعة ابغى شرح للكود هذا

او رابط او كتاب يشرح الجزئيه هذي

 private void Form1_Load(object sender, EventArgs e)
        {
            panel1.Visible = true;
            panel2.Visible = false;
            foreach (Control cc in Controls)
            {
                TextBox tb = cc as TextBox;
                if (tb != null)
                    tb.KeyPress += new KeyPressEventHandler(textBox_char);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            foreach (Control cc in Controls)
            {
                TextBox tb = cc as TextBox;
                //tb.KeyPress = new KeyPressEventHandler(textBox_char);
                if (tb != null)
                    tb.Text = "";
            }
            isEmpty = true;
        }
        public void textBox_char(object sender, KeyPressEventArgs e)
        {
            if (isArithmetic == false)
                e.Handled = !("01".Contains(e.KeyChar.ToString()) || e.KeyChar == 8);
            else
            {
                if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
                    {
                        e.Handled = true;
                    }
            }
        }

شكرا

#2

بالنسبة للميثود الاولى..

هي تشتغل عند ظهور الفورم...وتقوم باظهار العنصر panel1 واخفاء panel2

وتقوم بعملية بحث على جميع العناصر الموجودة في Control Collection اي مثل Button و TextBox و panel

فاذا كان هذا العنصر من نوع TextBox عندها يقوم بوضعه في المتحول tb>>>وعندها يقوم بعمل event خاص له من نوع keyPress يستقبل الميثود text_char

اما الثانية تقوم بمحي جميع النصوص الموجود العناصر textBox

اما الثالثة فتحوي على الخاصة Handled والتي تحدد اذا كان العنصر قد تم تنفيذ الحدث له ام لا؟

1

Currently working on ASP.net ..... come Back Soon

#3

شكرا ع المساعده وسرعة الرد

جزاك الله كل خير

بس لسا فيه حاجات مافهمتها كويس :blush:

انا مبتدئه في السي شارب ويادوب اعرف اشياء بسيطه فيه

بالنسبه للميثود الاولى :

لما يسوي بحث و يلقي tb مو فاضي المفروض ينفذ الحدث اللي بعده ,, الى هنا تمام

لكن الحدث نفسه مافهمته ,,

 tb.KeyPress += new KeyPressEventHandler(textBox_char);

------------------

الميثود الثانية :

فهمته تمام

لكن وظيفة البرنامج عندي لما اليوزر يكتب اي داتا غير الديجيت المفروض مايظهر داخل التكست بوكس اي حاجه بمعنى انه مايسمح لليوزر بكتابة اي حاجة غير الديجيت ,, هنا من الشرح فهمت انه يسمح وبعدين يمحيه ,,؟؟

------------------

الميثود الثالثة :

مافهمت اي حاجه فيه :blush:

شكرا مره ثانيه واسفه على كثرة الاسئله ,,

#5

الميثود الاولى......

 tb.KeyPress += new KeyPressEventHandler(textBox_char);

هنا نحن نعرف event للعناصر textBox>>>>هذه عملية تعريف لل event الذي يكون من نوع Delegate ...و نمرر له الميثود التي نريدها لهذا الحدث

يجب ان تكوني متأقلمة مع ال delegates and events لتفهميه جيدا

____

التانية....

اذا لاحظتي هذه الميثود موجودة داخل Clear button لتفريغ ما يوجد في textBoxes....ما تقولي عنه ان اليوزر غير مسموح له بالادخال من الاصل...فهو في الميثود الثالثة

التالتة..

 e.Handled = !("01".Contains(e.KeyChar.ToString()) || e.KeyChar == 8);

هنا يتم وضع قيمة true اذا ادخل المستخدم قيمة غير الواحد و الصفر أو زر الحذف backSpace

واذا كانت true عندها لن يتم وضع ما قد ضغطه المستخدم في ال textBox

اي اذا ادخل المستخدم قيمة الصفر مثلا فسوف يتم وضع قيمة false قي e.Handled وعندها سيسمح بكتابتها في textBox

ملاحظة....e.KeyVhar==8 انها تعني...(اذا ضغط المستخدم على زر الحذف)...حسب شيفرة الاسكي

ان شاء الله تكون وصلت الفكرة....

1

Currently working on ASP.net ..... come Back Soon

#6

الف شكر ,,

انا كذا فهمت البرنامج كامل الا اللهم حكاية delegate & event حقرأ فيها ان شاء الله ,,

جزاك الله كل خير ,,

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