C# البرمجة: فهم الأحداث

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

ما هو المصطلح الذي يصف عملية أو حالة يمكن تحديد مجموعة من الأوامر لتنفيذها عند حدوثها؟

  • إجراء
  • كائن
  • حدث (correct)
  • خاصية

أي نوع من الأحداث لا يصدر بالضرورة عن تفاعل مباشر من المستخدم؟

  • حدث النقر
  • عداد الوقت (correct)
  • النقر المزدوج
  • حدث الضغط على مفتاح

ماذا يطلق على البرنامج الصغير المرتبط بحدث معين ويتم تنفيذه عند وقوع هذا الحدث؟

  • المُعامل
  • الإجراء (correct)
  • الكائن
  • الخاصية

عند النقر المزدوج على زر في بيئة التطوير، أي نافذة تظهر؟

<p>نافذة الكود (D)</p> Signup and view all the answers

ما هو الاسم الذي يطلق على الإجراء الذي يتم تنفيذه عند وقوع الحدث؟

<p>مجيب الحدث (D)</p> Signup and view all the answers

ماذا يجب أن تفعل لفتح الإجراء الخاص بكائن أو عنصر تحكم لكتابة التعليمات البرمجية؟

<p>النقر المزدوج على الكائن (D)</p> Signup and view all the answers

ماذا يمثل السطر الأول في تعريف مجيب الحدث (Event handler)؟

<p>اسم الإجراء وتعريفه (C)</p> Signup and view all the answers

إذا كان المتغير مُعلنًا بأنه Private، فماذا يعني ذلك؟

<p>يمكن استخدامه فقط في نفس الوحدة أو الفئة التي تم تعريفه فيها (A)</p> Signup and view all the answers

ماذا تعني الكلمة Void في سياق الإجراء؟

<p>أن الإجراء لا يرجع بقيمة (A)</p> Signup and view all the answers

ما هو الغرض من المعاملات (Parameters) الموجودة بين القوسين بعد اسم الإجراء؟

<p>تخزين البيانات التي يستقبلها الإجراء (C)</p> Signup and view all the answers

أي من الأحداث التالية يعتبر الحدث الافتراضي الأكثر شيوعًا عند النقر المزدوج على زر؟

<p>Click (A)</p> Signup and view all the answers

ما هو الحدث الأكثر شيوعًا لمربع النص والذي بموجبه يتم فتح الإجراء الخاص به عند النقر المزدوج عليه؟

<p>TextChanged (D)</p> Signup and view all the answers

كيف يمكنك الوصول إلى قائمة الأحداث الخاصة بالكائن؟

<p>عن طريق مربع الخصائص والنقر على زر الأحداث (C)</p> Signup and view all the answers

ماذا يحدث عندما تنقر نقرًا مزدوجًا على اسم حدث في قائمة الأحداث؟

<p>يتم الانتقال إلى نافذة الكود عند مجيب الحدث الخاص به (A)</p> Signup and view all the answers

ما هو الفرق الرئيسي بين الحدث Click والحدث MouseClick؟

<p>Click يحدث عند النقر بالماوس أو بالضغط على Enter، بينما MouseClick يحدث فقط بالماوس. (D)</p> Signup and view all the answers

ما هي المجموعة التي تنتمي إليها الأحداث الخاصة بالنقر على العنصر؟

<p>Action (C)</p> Signup and view all the answers

ما هي المجموعة التي تنتمي إليها الأحداث الخاصة بلوحة المفاتيح؟

<p>Key (D)</p> Signup and view all the answers

أي من الأحداث التالية يقع عند تحريك الماوس فوق الأداة؟

<p>MouseMove (C)</p> Signup and view all the answers

أي من الأحداث التالية يقع أثناء الضغط على زر الماوس وقبل أن ترفع يدك عن الماوس؟

<p>MouseDown (D)</p> Signup and view all the answers

أي من الأحداث التالية يقع عندما يقوم المستخدم بوضع الأداة المسحوبة بالماوس في المكان المطلوب؟

<p>DragDrop (B)</p> Signup and view all the answers

أي من الأحداث التالية يقع عندما يقوم المستخدم بضغط حرف من لوحة المفاتيح؟

<p>KeyPress (A)</p> Signup and view all the answers

ما هي المهمة التي تحددها التعليمات التي يتم كتابتها في الإجراء الخاص بالأداة؟

<p>تحديد المهمة المطلوب تنفيذها عند حدوث الحدث (B)</p> Signup and view all the answers

عند تغيير قيمة خاصية لأي أداة أثناء تنفيذ البرنامج، ما هي القاعدة العامة التي يجب اتباعها؟

<p>اسم الكائن . اسم الخاصية = القيمة الجديدة (A)</p> Signup and view all the answers

ماذا يمثل اسم الكائن objectName في الكود التالي objectName.propertyName = newValue;؟

<p>اسم الكائن أو الأداة المطلوب تغيير قيمة الخاصية لها (B)</p> Signup and view all the answers

إذا أردت تغيير خاصية Text لمربع نص Textbox أثناء التشغيل عند النقر المزدوج عليه، فما هو الإجراء الذي يجب عليك استخدامه؟

<p>DoubleClick (D)</p> Signup and view all the answers

أي كود يجب كتابته لتغيير قيمة الخاصية Text لمربع النص المسمى textBox1 إلى 'Welcome' عند النقر المزدوج عليه؟

<p>textBox1.Text = 'Welcome' (A)</p> Signup and view all the answers

في أي جزء من بيئة التطوير يمكنك إيجاد زري التبديل بين نافذة التصميم ونافذة الكود؟

<p>في الجزء الأيسر العلوي (A)</p> Signup and view all the answers

ما هو اسم الملف الذي يحتوي على كافة الأوامر الخاصة بإدراج عناصر التحكم على النموذج(Form) وخصائص هذه العناصر؟

<p>Form1.Designer.cs (B)</p> Signup and view all the answers

ماذا تفعل إذا أغلقت نافذة التصميم أو نافذة الكود ولا ترى الأزرار الخاصة بها؟

<p>استخدام الأمر 'عرض التعليمات البرمجية' أو 'عرض المصمم' (C)</p> Signup and view all the answers

أي من الخصائص التالية تحدد ما إذا كان المستخدم يستطيع استخدام مربع النص أو لا ؟

<p>Enabled (C)</p> Signup and view all the answers

ماذا يحدث في الكود التالي: label1.Text = button1.Text;؟

<p>يتم تعيين قيمة الخاصية Text لـ label1 إلى قيمة الخاصية Text لـ button1 (B)</p> Signup and view all the answers

ماذا يمثل المتغير e في إجراء معالجة أحداث لوحة المفاتيح مثل KeyPress؟

<p>معلومات حول الحدث، مثل المفتاح الذي تم الضغط عليه (B)</p> Signup and view all the answers

الكود textBox2.Text = e.KeyChar.ToString(); يفعل؟

<p>عرض آخر حرف تم كتابة في مربع النص texBox1 داخل المربع textBox2 (D)</p> Signup and view all the answers

أي جزء من الكود التالي يمثل الفئة التي توفر معلومات حول أحداث لوحة المفاتيح في #C؟ private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

<p>KeyPressEventArgs (A)</p> Signup and view all the answers

ما الغرض من الخاصية KeyChar في الكائن e (KeyPressEventArgs)؟

<p>تخزين الحرف الذي تم الضغط عليه (C)</p> Signup and view all the answers

Flashcards

ما هو الحدث (Event)؟

عملية أو حالة يتعرض لها أحد الكائنات، ويمكن تحديد مجموعة أوامر يتم تنفيذها عند وقوع الحدث.

الإجراء (Method)

كل كائن في التطبيق يمتلك مجموعة من البرامج الصغيرة يطلق عليها اسم (إجراء Method)، وكل إجراء مرتبط بحدث معين.

مجيب الحدث (Event Handler)

الإجراء الذي يتم تنفيذه عند وقوع الحدث.

نافذة البرمجة

النافذة التي يتم فيها كتابة كافة الأوامر الخاصة بالـ Form ، وما عليها من كائنات.

Signup and view all the flashcards

Private

كلمة تحدد أي أجزاء البرنامج يمكنها استخدام هذا الإجراء.

Signup and view all the flashcards

Void

تعني أن هذا الإجراء لا يرجع بقيمة بعد تنفيذه.

Signup and view all the flashcards

المعاملات (Parameters)

يستقبل الإجراء بيانات.

Signup and view all the flashcards

المعامل Sender

يخزن الأداة المسببة للحدث.

Signup and view all the flashcards

EventArgs

يضم معاملات وبيانات خاصة بالحدث.

Signup and view all the flashcards

الحدث الافتراضي

لكل كائن له حدث افتراضي هو الحدث الأكثر شيوعا، وهو الذي يتم فتح الإجراء الخاص به عند نقر الأداة نقرا مزدوجا.

Signup and view all the flashcards

حدث Click

يقع الحدث عند النقر فوق الأداة أو الكائن.

Signup and view all the flashcards

حدث DoubleClick

يقع الحدث عند النقر نقرا مزدوجا فوق الأداة.

Signup and view all the flashcards

حدث MouseDown

يقع الحدث أثناء ضغط زر الماوس وقبل أن ترفع يدك عن الماوس.

Signup and view all the flashcards

حدث MouseUp

يقع الحدث بعد عملية النقر.

Signup and view all the flashcards

حدث Dragover

يقع عندما يمر المستخدم فوق أداة وهو يسحب أداة أخرى بالماوس.

Signup and view all the flashcards

حدث DragDrop

يقع عندما يقوم المستخدم بوضع الأداة المسحوبة بالماوس في المكان المطلوب.

Signup and view all the flashcards

حدث KeyPress

يقع عندما يقوم المستخدم بضغط حرف من لوحة المفاتيح.

Signup and view all the flashcards

حدث KeyDown

يقع أثناء ضغط المفتاح الأسفل وقبل تحريره.

Signup and view all the flashcards

حدث KeyUp

يقع بعد ضغط المفتاح.

Signup and view all the flashcards

كتابة التعليمات (Code)

تعليمات يتم كتابتها في الإجراء تحدد المهمة المطلوبة عند حدوث الحدث.

Signup and view all the flashcards

تغيير قيمة الخاصية أثناء التنفيذ

كتابة اسم الكائن، ثم (.) ، ثم اسم الخاصية، ثم = ، ثم القيمة المطلوب تعيينها للخاصية.

Signup and view all the flashcards

المعاملات (Parameters)

أدوات توفر بيانات عن الكائن الذي وقع له الحدث.

Signup and view all the flashcards

الخاصية KeyChar

يخزن بها الحرف الذى تم الضغط عليه.

Signup and view all the flashcards

عرض النوافذ

الأمر (View Code) لعرض نافذة الكود و(View Designer) لعرض نافذة التصميم.

Signup and view all the flashcards

ملف الكود Designer

هذا الملف يحتوي على كافة الأوامر الخاصة بإدراج عناصر التحكم على الـ Form وخصائص هذه العناصر، وهذا الملف تقوم بيئة التطوير بكتابة التعليمات فيه مباشرة، ولا يستخدمه المبرمج بشكل أساسي.

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

نوافذ تصميم وبرمجة الـ 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.

Quiz Team

Related Documents

C# Events Lecture Notes PDF

More Like This

Java Events and Event Handling
36 questions

Java Events and Event Handling

LuxuriousEuphoria5971 avatar
LuxuriousEuphoria5971
الأحداث في لغة C#
39 questions
Use Quizgecko on...
Browser
Browser