Podcast
Questions and Answers
ما هو المصطلح الذي يصف عملية أو حالة يمكن تحديد مجموعة من الأوامر لتنفيذها عند حدوثها؟
ما هو المصطلح الذي يصف عملية أو حالة يمكن تحديد مجموعة من الأوامر لتنفيذها عند حدوثها؟
- إجراء
- كائن
- حدث (correct)
- خاصية
أي نوع من الأحداث لا يصدر بالضرورة عن تفاعل مباشر من المستخدم؟
أي نوع من الأحداث لا يصدر بالضرورة عن تفاعل مباشر من المستخدم؟
- حدث النقر
- عداد الوقت (correct)
- النقر المزدوج
- حدث الضغط على مفتاح
ماذا يطلق على البرنامج الصغير المرتبط بحدث معين ويتم تنفيذه عند وقوع هذا الحدث؟
ماذا يطلق على البرنامج الصغير المرتبط بحدث معين ويتم تنفيذه عند وقوع هذا الحدث؟
- المُعامل
- الإجراء (correct)
- الكائن
- الخاصية
عند النقر المزدوج على زر في بيئة التطوير، أي نافذة تظهر؟
عند النقر المزدوج على زر في بيئة التطوير، أي نافذة تظهر؟
ما هو الاسم الذي يطلق على الإجراء الذي يتم تنفيذه عند وقوع الحدث؟
ما هو الاسم الذي يطلق على الإجراء الذي يتم تنفيذه عند وقوع الحدث؟
ماذا يجب أن تفعل لفتح الإجراء الخاص بكائن أو عنصر تحكم لكتابة التعليمات البرمجية؟
ماذا يجب أن تفعل لفتح الإجراء الخاص بكائن أو عنصر تحكم لكتابة التعليمات البرمجية؟
ماذا يمثل السطر الأول في تعريف مجيب الحدث (Event handler)؟
ماذا يمثل السطر الأول في تعريف مجيب الحدث (Event handler)؟
إذا كان المتغير مُعلنًا بأنه Private، فماذا يعني ذلك؟
إذا كان المتغير مُعلنًا بأنه Private، فماذا يعني ذلك؟
ماذا تعني الكلمة Void في سياق الإجراء؟
ماذا تعني الكلمة Void في سياق الإجراء؟
ما هو الغرض من المعاملات (Parameters) الموجودة بين القوسين بعد اسم الإجراء؟
ما هو الغرض من المعاملات (Parameters) الموجودة بين القوسين بعد اسم الإجراء؟
أي من الأحداث التالية يعتبر الحدث الافتراضي الأكثر شيوعًا عند النقر المزدوج على زر؟
أي من الأحداث التالية يعتبر الحدث الافتراضي الأكثر شيوعًا عند النقر المزدوج على زر؟
ما هو الحدث الأكثر شيوعًا لمربع النص والذي بموجبه يتم فتح الإجراء الخاص به عند النقر المزدوج عليه؟
ما هو الحدث الأكثر شيوعًا لمربع النص والذي بموجبه يتم فتح الإجراء الخاص به عند النقر المزدوج عليه؟
كيف يمكنك الوصول إلى قائمة الأحداث الخاصة بالكائن؟
كيف يمكنك الوصول إلى قائمة الأحداث الخاصة بالكائن؟
ماذا يحدث عندما تنقر نقرًا مزدوجًا على اسم حدث في قائمة الأحداث؟
ماذا يحدث عندما تنقر نقرًا مزدوجًا على اسم حدث في قائمة الأحداث؟
ما هو الفرق الرئيسي بين الحدث Click والحدث MouseClick؟
ما هو الفرق الرئيسي بين الحدث Click والحدث MouseClick؟
ما هي المجموعة التي تنتمي إليها الأحداث الخاصة بالنقر على العنصر؟
ما هي المجموعة التي تنتمي إليها الأحداث الخاصة بالنقر على العنصر؟
ما هي المجموعة التي تنتمي إليها الأحداث الخاصة بلوحة المفاتيح؟
ما هي المجموعة التي تنتمي إليها الأحداث الخاصة بلوحة المفاتيح؟
أي من الأحداث التالية يقع عند تحريك الماوس فوق الأداة؟
أي من الأحداث التالية يقع عند تحريك الماوس فوق الأداة؟
أي من الأحداث التالية يقع أثناء الضغط على زر الماوس وقبل أن ترفع يدك عن الماوس؟
أي من الأحداث التالية يقع أثناء الضغط على زر الماوس وقبل أن ترفع يدك عن الماوس؟
أي من الأحداث التالية يقع عندما يقوم المستخدم بوضع الأداة المسحوبة بالماوس في المكان المطلوب؟
أي من الأحداث التالية يقع عندما يقوم المستخدم بوضع الأداة المسحوبة بالماوس في المكان المطلوب؟
أي من الأحداث التالية يقع عندما يقوم المستخدم بضغط حرف من لوحة المفاتيح؟
أي من الأحداث التالية يقع عندما يقوم المستخدم بضغط حرف من لوحة المفاتيح؟
ما هي المهمة التي تحددها التعليمات التي يتم كتابتها في الإجراء الخاص بالأداة؟
ما هي المهمة التي تحددها التعليمات التي يتم كتابتها في الإجراء الخاص بالأداة؟
عند تغيير قيمة خاصية لأي أداة أثناء تنفيذ البرنامج، ما هي القاعدة العامة التي يجب اتباعها؟
عند تغيير قيمة خاصية لأي أداة أثناء تنفيذ البرنامج، ما هي القاعدة العامة التي يجب اتباعها؟
ماذا يمثل اسم الكائن objectName في الكود التالي objectName.propertyName = newValue;
؟
ماذا يمثل اسم الكائن objectName في الكود التالي objectName.propertyName = newValue;
؟
إذا أردت تغيير خاصية Text لمربع نص Textbox أثناء التشغيل عند النقر المزدوج عليه، فما هو الإجراء الذي يجب عليك استخدامه؟
إذا أردت تغيير خاصية Text لمربع نص Textbox أثناء التشغيل عند النقر المزدوج عليه، فما هو الإجراء الذي يجب عليك استخدامه؟
أي كود يجب كتابته لتغيير قيمة الخاصية Text لمربع النص المسمى textBox1 إلى 'Welcome' عند النقر المزدوج عليه؟
أي كود يجب كتابته لتغيير قيمة الخاصية Text لمربع النص المسمى textBox1 إلى 'Welcome' عند النقر المزدوج عليه؟
في أي جزء من بيئة التطوير يمكنك إيجاد زري التبديل بين نافذة التصميم ونافذة الكود؟
في أي جزء من بيئة التطوير يمكنك إيجاد زري التبديل بين نافذة التصميم ونافذة الكود؟
ما هو اسم الملف الذي يحتوي على كافة الأوامر الخاصة بإدراج عناصر التحكم على النموذج(Form) وخصائص هذه العناصر؟
ما هو اسم الملف الذي يحتوي على كافة الأوامر الخاصة بإدراج عناصر التحكم على النموذج(Form) وخصائص هذه العناصر؟
ماذا تفعل إذا أغلقت نافذة التصميم أو نافذة الكود ولا ترى الأزرار الخاصة بها؟
ماذا تفعل إذا أغلقت نافذة التصميم أو نافذة الكود ولا ترى الأزرار الخاصة بها؟
أي من الخصائص التالية تحدد ما إذا كان المستخدم يستطيع استخدام مربع النص أو لا ؟
أي من الخصائص التالية تحدد ما إذا كان المستخدم يستطيع استخدام مربع النص أو لا ؟
ماذا يحدث في الكود التالي: label1.Text = button1.Text;
؟
ماذا يحدث في الكود التالي: label1.Text = button1.Text;
؟
ماذا يمثل المتغير e في إجراء معالجة أحداث لوحة المفاتيح مثل KeyPress؟
ماذا يمثل المتغير e في إجراء معالجة أحداث لوحة المفاتيح مثل KeyPress؟
الكود textBox2.Text = e.KeyChar.ToString();
يفعل؟
الكود textBox2.Text = e.KeyChar.ToString();
يفعل؟
أي جزء من الكود التالي يمثل الفئة التي توفر معلومات حول أحداث لوحة المفاتيح في #C؟ private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
أي جزء من الكود التالي يمثل الفئة التي توفر معلومات حول أحداث لوحة المفاتيح في #C؟ private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
ما الغرض من الخاصية KeyChar في الكائن e (KeyPressEventArgs)؟
ما الغرض من الخاصية KeyChar في الكائن e (KeyPressEventArgs)؟
Flashcards
ما هو الحدث (Event)؟
ما هو الحدث (Event)؟
عملية أو حالة يتعرض لها أحد الكائنات، ويمكن تحديد مجموعة أوامر يتم تنفيذها عند وقوع الحدث.
الإجراء (Method)
الإجراء (Method)
كل كائن في التطبيق يمتلك مجموعة من البرامج الصغيرة يطلق عليها اسم (إجراء Method)، وكل إجراء مرتبط بحدث معين.
مجيب الحدث (Event Handler)
مجيب الحدث (Event Handler)
الإجراء الذي يتم تنفيذه عند وقوع الحدث.
نافذة البرمجة
نافذة البرمجة
Signup and view all the flashcards
Private
Private
Signup and view all the flashcards
Void
Void
Signup and view all the flashcards
المعاملات (Parameters)
المعاملات (Parameters)
Signup and view all the flashcards
المعامل Sender
المعامل Sender
Signup and view all the flashcards
EventArgs
EventArgs
Signup and view all the flashcards
الحدث الافتراضي
الحدث الافتراضي
Signup and view all the flashcards
حدث Click
حدث Click
Signup and view all the flashcards
حدث DoubleClick
حدث DoubleClick
Signup and view all the flashcards
حدث MouseDown
حدث MouseDown
Signup and view all the flashcards
حدث MouseUp
حدث MouseUp
Signup and view all the flashcards
حدث Dragover
حدث Dragover
Signup and view all the flashcards
حدث DragDrop
حدث DragDrop
Signup and view all the flashcards
حدث KeyPress
حدث KeyPress
Signup and view all the flashcards
حدث KeyDown
حدث KeyDown
Signup and view all the flashcards
حدث KeyUp
حدث KeyUp
Signup and view all the flashcards
كتابة التعليمات (Code)
كتابة التعليمات (Code)
Signup and view all the flashcards
تغيير قيمة الخاصية أثناء التنفيذ
تغيير قيمة الخاصية أثناء التنفيذ
Signup and view all the flashcards
المعاملات (Parameters)
المعاملات (Parameters)
Signup and view all the flashcards
الخاصية KeyChar
الخاصية KeyChar
Signup and view all the flashcards
عرض النوافذ
عرض النوافذ
Signup and view all the flashcards
ملف الكود Designer
ملف الكود Designer
Signup and view all the flashcards
Study Notes
بالتأكيد ، إليك ملاحظات الدراسة التفصيلية بناءً على الصور المقدمة:
- تتعرف هذه المحاضرة على مفهوم الأحداث C#، وأنواعها، وكيفية كتابة التعليمات البرمجية التي يتم تنفيذها عند وقوع الحدث.
أهداف المحاضرة
- شرح مفهوم "الحدث" في البرمجة.
- تلخيص كيفية الاستجابة للأحداث المختلفة.
- الوصول إلى الإجراء الخاص بالحدث الأكثر شيوعًا لعنصر التحكم.
- عرض قائمة الأحداث لعنصر تحكم والوصول إلى الإجراء الخاص بأحدها.
- التمييز بين الإعلان عن الإجراء ومكان كتابة الكود.
- سرد أهم أحداث الماوس وأحداث لوحة المفاتيح.
- التمييز بين الحدث Click و MouseClick.
- تفسير دور المعاملات في الإجراءات بمثال.
- التبديل بين نافذة الكود ونافذة التصميم.
- التبديل بين نافذة الكود ونافذة التصميم من خلال مربع Solution Explorer.
- تلخيص عمل نافذة الكود التي يتم إنشائها تلقائيًا بواسطة بيئة التطوير.
ما هو الحدث؟
- الحدث هو عملية أو حالة يتعرض لها أحد الكائنات، ويمكن تحديد مجموعة أوامر تنفذ عند وقوع الحدث.
- أمثلة لأحداث نتيجة استخدام الماوس:
- حدث النقر (Click)
- حدث النقر المزدوج (Double Click)
- هناك أيضًا أحداث مرتبطة بالضغط على مفاتيح في لوحة المفاتيح (KeyPress).
- هناك أحداث لا تصدر عن المستخدم نفسه، مثل حدث عداد الوقت (Timer)، وهو حدث يقع كل فترة زمنية دون تدخل.
- كل كائن في البرنامج له مجموعة من الأحداث، مثل مربع النص (Textbox) الذي له أحداث مثل Changed أو Click أو KeyPress.
- البرنامج المصمم هو مجموعة من البرامج الصغيرة، كل منها ينفذ عند وقوع الحدث المرتبط به.
كيفية الاستجابة للحدث
- يتكون الحدث من عنصرين:
- وقوع الحدث نفسه كالنقر بزر الماوس.
- الكائن الذي يقع عليه الحدث، مثل زر الأمر (Button).
- كل كائن في التطبيق لديه مجموعة من البرامج الصغيرة يطلق عليها اسم "إجراء Method"، وكل إجراء مرتبط بحدث معين، والأوامر والتعليمات الموجودة داخل الإجراء لا تنفذ إلا بوقوع الحدث.
- الإجراء الذي ينفذ عند وقوع الحدث يسمى "مجيب الحدث Event Handler".
- كل إجراء مبدئيًا يكون فارغًا، ثم يقوم المبرمج بكتابة التعليمات (Code) المطلوبة لتنفيذها عند وقوع الحدث.
- لفتح الإجراء الخاص بكائن، يتم النقر المزدوج بالماوس على الكائن المطلوب كتابة تعليمات له.
مثال لتوضيح الفكرة:
- يتم وضع زر أمر (Button) على نافذة البرنامج.
- يتم النقر المزدوج على الزر (Button) لتظهر نافذة البرمجة.
- النافذة التي تظهر هي التي يتم فيها كتابة الأوامر الخاصة بالـ Form وما عليها من كائنات.
- هي مربكة نتيجة وجود العديد من الأوامر غير المفهومة، ولكن سيتم التعرف عليها تدريجيًا.
- الجزء المهم هو الجزء المشار إليه بالسهم، حيث ستظهر نقطة الإدراج تلقائيًا عند النقر المزدوج على الزر لفتح نافذة الكود.
مكونات مجيب الحدث Event handler
- مجيب الحدث الخاص بالزر يتكون من الأجزاء التالية:
Private Void Button1_Click(Object sender, EventArgs e)
- هذا السطر يمثل البداية، ويظهر به اسم الإجراء Method وتعريفه.
- كلمة
Private
تحدد أجزاء البرنامج التي يمكنها استخدام هذا الإجراء. - كلمة
Void
تعني أن هذا الإجراء لا يرجع بقيمة بعد تنفيذه. Button_click
هو اسم الإجراء، ويتكون من اسم الكائن الذي حدث له الحدث واسم الحدث (Click).- القوسين ( ) يوضع بهما المعاملات Parameters، وهي مجموعة من الحقول التي يخزن بها بيانات يستقبلها الإجراء.
- المعامل sender (كائن Object) يخزن الأداة المسببة للحدث.
- المعامل e (من النوع EventArgs) يضم معاملات وبيانات خاصة بالحدث.
- الأقواس { } يكتب بينهما كافة الأوامر المطلوب تنفيذها عند وقوع الحدث.
لماذا يتم فتح هذا الإجراء فقط؟
- الحدث الذي تم فتح الإجراء الخاص به هو الحدث Click بمعنى "عند النقر".
- كل كائن له حدث افتراضي هو الأكثر شيوعًا، وهو الذي يتم فتح الإجراء الخاص به عند النقر المزدوج على الأداة.
- بالنسبة للزر، أكثر حدث يحدث له هو النقر (Click)، لذا يتم فتح الإجراء الخاص بالحدث Click.
- بالمثل، لمربع النص (Textbox)، أكثر حدث يتعرض له هو تغيير محتوياته، لذا يتم فتح الإجراء الخاص بالحدث TextChanged.
اختيار أحداث أخرى للكائن
- يمكن اختيار مجيب الحدث Event handler الخاص بحدث آخر من خلال مربع الخصائص Properties.
- يتم تحديد الكائن المطلوب الوصول إلى الأحداث الخاصة به.
- الانتقال إلى مربع الخصائص ونقر الزر (Events).
مقارنة بين الحدث Click والحدث MouseClick
- الحدث Click
- يتم تنفيذ الإجراء الخاص به عند حدوث نقر للزر سواء باستخدام الماوس أو باستخدام مفتاح Tab ثم الضغط على مفتاح Enter.
- الحدث MouseClick
- يتم تنفيذ الإجراء الخاص بالحدث عند حدوث نقر للعنصر فقط باستخدام الماوس.
- الإجراء الخاص بالحدث MouseClick يوفر العديد من المعلومات التي يمكن استخدامها، مثل عدد النقرات وأي زر استخدم.
الأحداث المشتركة
- هناك أحداث مشتركة تتعرض لها معظم الأدوات وتستجيب إليها، بالإضافة إلى أحداث خاصة ببعض الأدوات.
أحداث خاصة بحركة الماوس:
اسم الحدث | معناه | وقت حدوثه
- ------ | -------- | -------- Click | النقر مرة واحدة | يقع عند النقر فوق الأداة أو الكائن. DoubleClick | النقر المزدوج | يقع عند النقر نقرا مزدوجا فوق الأداة. MouseMove | حركة الماوس | يقع عند تحرك الماوس فوق الأداة. MouseDown | زر الماوس للأسفل | يقع أثناء ضغط زر الماوس وقبل أن ترفع يدك عن الماوس. MouseUp | زر الماوس للأعلى | يقع بعد عملية النقر
أحداث السحب والإلقاء:
اسم الحدث | معناه | وقت حدوثه
- ------ | -------- | -------- Dragover | سحب فوق | يقع عندما يمر المستخدم فوق أداة وهو يسحب أداة أخرى بالماوس. DragDrop | إلقاء | يقع عندما يقوم المستخدم بوضع الأداة المسحوبة بالماوس في المكان المطلوب
أحداث خاصة بلوحة المفاتيح:
اسم الحدث | معناه | وقت حدوثه
- ------ | -------- | -------- KeyPress | ضغط حرف | يقع عندما يقوم المستخدم بضغط حرف من لوحة المفاتيح. KeyDown | المفتاح الأسفل | يقع أثناء ضغط المفتاح الأسفل وقبل تحريره. KeyUp | المفتاح لأعلى | يقع بعد ضغط المفتاح
كيفية كتابة التعليمات Code
- التعليمات التي تكتب في الإجراء الخاص بالأداة تحدد المهمة المطلوب تنفيذها عند حدوث الحدث.
- لكل أداة مجموعة خصائص يمكن تغييرها في مرحلة التصميم، ويمكن تغييرها أيضًا أثناء تنفيذ البرنامج عند وقوع حدث معين.
- هناك قاعدة عامة لتغيير قيمة الخاصية لأي أداة أو كائن أثناء التنفيذ:
ObjectName.PropertyName = New Value;
ObjectName
: اسم الكائن أو الأداة المطلوب تغيير قيمة الخاصية لها.PropertyName
: اسم الخاصية المراد تغيير قيمتها.NewValue
: القيمة الجديدة للخاصية.
- يجب مراعاة أن القيم الرقمية أو القيم المعروفة لـ #C مثل True أو False تكتب كما هي، أما القيم الحرفية فتكتب بين علامتي تنصيص مزدوجة.
مثال لتغيير قيمة Text أثناء التشغيل
- لتغيير كلمة Welcome بدلا من Hello عند النقر المزدوج (DoubleClick) على مربع النص:
- في نافذة التصميم، يتم عرض قائمة الأحداث في لوحة الخصائص، ثم النقر المزدوج على الحدث DoubleClick.
- في الإجراء الخاص بالحدث DoubleClick، يتم كتابة الكود التالي:
textBox1.Text = "welcome";
المعاملات Parameters
- تعرفنا على أن جزء كبير من تعليمات وأوامر التطبيق يتم كتابتها داخل الإجراءات التي تمثل مجيبات للأحداث المختلفة، أي أن كل إجراء منها ينفذ عند حدوث الحدث.
- جملة تعريف الإجراء يظهر بها أسماء لكائنات أو متغيرات يطلق عليها المعاملات ووظيفتها توفير بيانات عن الكائن الذي وقع له الحدث، فمثلا لو كان الحدث خاص بالماوس فستخزن أى زر تم نقره، ولو كان الحدث خاص بلوحة المفاتيح فسيتم تخزين اى مفتاح تم الضغط عليه.
- مثال:
- لكتابة آخر حرف تم كتابته في المربع textBox1 داخل المربع textBox1
- في الإجراء الخاص بالحدث KeyPress، يتم كتابة الكود التالي:
textBox2.Text = e.KeyChar.ToString();
- الخاصية KeyChar يخزن بها الحرف الذي تم الضغط عليه، وهذه الخاصية خاصة بالكائن e، وهذا الكائن هو معامل في الإجراء KeyPress الخاص بالمربع textBox1، وبالتالي سيخزن به الحرف الخاص بالمفتاح الذى يتم الضغط عليه في المربع textBox1
- في الإجراء الخاص بالحدث KeyPress، يتم كتابة الكود التالي:
- لكتابة آخر حرف تم كتابته في المربع textBox1 داخل المربع textBox1
نوافذ تصميم وبرمجة الـ Form
- حاليًا عند تصميم تطبيق نتعامل مع نافذتين بشكل أساسي:
- نافذة التصميم التي نقوم فيها بإدراج عناصر التحكم المختلفة.
- نافذة الكود.
- للانتقال بين النافذين يتم النقر على الزر الخاص بها في الجزء العلوي الأيسر من بيئة التطوير.
- الانتقال بين النافذتين فقط بنقر الزر الخاص بها، ويمكن إغلاق النافذة بنقر الرمز (X) الموجود على الزر.
- هناك طريقة أخرى للانتقال بين النافذين عن طريق قائمة عرض الأمر (View Code) لعرض نافذة الكود (View Designer) لعرض نافذة التصميم.
نافذة الكود التي تنشئها بيئة التطوير
- هذا الملف يضاف فيه على اسم Form كلمة Designer ليكون اسم الملف مثلا Form1.Designer.CS
- هذا الملف يحتوي على كافة الأوامر الخاصة بإدراج عناصر التحكم على Form وخصائص هذه العناصر، وهذا الملف تقوم بيئة التطوير بكتابة التعليمات فيه مباشرة، ولا يستخدمه المبرمج بشكل أساسي.
- يمكن الوصول إليه بتحديد Form1.Designer.CS من Solution Explorer.
- هذا الكود تم إنشاؤه تلقائيا بواسطة بيئة التطوير، فمثلا الكود السابق خاص بإدراج مربعي نص، وزري أمر.
استخدام المربع مستكشف المشروع Solution Explorer
- كل Form تضاف تظهر في هذا المربع، وتظهر الـ Form باسمها.
إذا كان لديك أي أسئلة أخرى أو تحتاج إلى مزيد من التوضيحات، فلا تتردد في طرحها.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.