تسمح لك نماذج Windows بإنشاء تطبيقات سطح المكتب بشكل مرئي ، عن طريق سحب عناصر واجهة المستخدم على لوحة الرسم. تتضمن عناصر واجهة المستخدم هذه أدوات مثل الأزرار أو اللوحات أو مربعات الاختيار.
يتلقى كل عنصر من عناصر واجهة المستخدم أحداثًا معينة. على سبيل المثال ، يمكن أن يكون لديك حدث نقر للأزرار ، أو حدث تم تغييره لمربعات الاختيار ، أو حدث سحب وإفلات للوحات.
تستخدم الأحداث معالجات أو وظائف الأحداث ، والتي يتم تنفيذها فقط عند وقوع هذا الحدث المحدد.
أنواع الأحداث المستخدمة لعناصر واجهة المستخدم المختلفة
يحتوي كل عنصر من عناصر واجهة المستخدم على قائمة بالأحداث. هناك العديد من الدورات التدريبية حيث يمكنك ذلك تعرف على نظريات وممارسات UX أو UI الهامة لمساعدتك في تحديد عناصر واجهة المستخدم التي يجب استخدامها. فيما يلي بعض الأمثلة على الأحداث التي تستخدمها عناصر واجهة المستخدم.
Key Down أو Key Up أو Key Press Events
يمكن لعناصر واجهة المستخدم التي تسمح للمستخدم بإدخال نص ، مثل مربع نص ، استخدام هذه الأحداث. يتم تشغيل هذه الأحداث في كل مرة يضغط فيها المستخدم على مفتاح في لوحة المفاتيح.
يمكن أن تكون هذه مفيدة في السيناريوهات التي يكون لديك فيها وظيفة بحث ، وقد تحتاج إلى التحقق باستمرار من قيمة مربع النص.
خاصفارغtextBox1_KeyUp(مرسل الكائن ، KeyEventArgs e)
{
TextBox textbox = (TextBox) المرسل ؛
سلسلة CurrentTextBoxValue = مربع نص. نص؛
}
حدث التحميل
يقع حدث التحميل عند عرض النموذج أو عنصر واجهة المستخدم على الشاشة. يمكنك استخدام هذا الحدث عندما تريد حدوث وظيفة معينة في مرحلة تهيئة النموذج أو عنصر التحكم.
أحد السيناريوهات التي قد يكون ذلك مفيدًا فيها هو إذا كنت تريد إضافة عناصر تحكم إلى النموذج برمجيًا أثناء استمرار تحميله.
خاصفارغForm1_Load(كائن المرسل ، EventArgs e)
{
ToolTip toolTip1 = الجديد تلميح()؛
toolTip1.AutoPopDelay = 5000 ؛
toolTip1.InitialDelay = 1000 ؛
toolTip1.ReshowDelay = 500 ؛
toolTip1.ShowAlways = حقيقي;
toolTip1.SetToolTip (this.button1، "زر بلدي 1");
toolTip1.Popup + = هذه. تلميح الأداة 1_ المنبثقة ؛
}
يحدث حدث التلميح المنبثق عند التمرير فوق عنصر واجهة المستخدم في التطبيق ، ويظهر تلميح أداة. تسمح لك الوسائط التي تم تمريرها إلى معالج الأحداث بالوصول إلى البيانات حول التلميح ، مثل نصه أو حجمه.
خاصفارغToolTip1_Popup(مرسل الكائن ، PopupEventArgs e)
{
تلميح الأدوات تلميح = (تلميح الأداة) المرسل ؛
سلسلة tooltipText = tooltip. GetToolTip (button1) ؛
فار tooltipSize = البريد. ToolTipSize ؛
}
حدث السحب والإفلات
يمكن للعديد من عناصر واجهة المستخدم استخدام حدث السحب والإفلات ، بما في ذلك اللوحة والزر ومربع الصورة ومربع المجموعة والمزيد. يتم تشغيل هذا الحدث عندما يسحب المستخدم ملفًا إلى عنصر واجهة المستخدم.
خاصفارغpanel1_DragDrop(كائن المرسل ، DragEventArgs e)
{
سلسلة [] ملفات = (سلسلة []) هـ. بيانات. GetData (تنسيقات البيانات. سقوط ملف، خاطئة);
}
الماوس فوق الأحداث وترك الماوس
يتم تشغيل الماوس فوق الحدث عند تمرير الماوس فوق عنصر واجهة المستخدم. بمجرد أن يغادر الماوس ويتوقف عن التحويم فوق العنصر ، يتم تشغيل حدث ترك الماوس.
خاصفارغbutton1_MouseLeave(كائن المرسل ، EventArgs e)
{
زر زر = (زر) المرسل ؛
فار buttonText = زر. نص؛
}
تم تحديد الحدث المتغير
يمكن لعناصر واجهة المستخدم التي تسمح للمستخدم بتحديد خيار استخدام الحدث الذي تم تحديده والذي تم تغييره. يتضمن ذلك أزرار الاختيار ومربعات الاختيار. يتم تشغيل الوظيفة عند تحديد خانة الاختيار أو إلغاء تحديدها.
خاصفارغcheckBox1_CheckedChanged(كائن المرسل ، EventArgs e)
{
مربع الاختيار CheckBox = المرسل (CheckBox) ؛
CheckState state = خانة اختيار. تحقق
منطقية isChecked = خانة اختيار. التحقق؛
}
تم تغيير القيمة أو تغيير القيمة المحددة أو تغيير تاريخ الأحداث
حدث تغيير القيمة متاح في عناصر واجهة المستخدم التي تسمح لك بتحديد خيار لتغيير القيمة. يتضمن ذلك مربعات التحرير والسرد ومنتقي التاريخ والوقت أو التقويم. يتم تشغيل الوظيفة عندما يختار المستخدم قيمة جديدة.
خاصفارغmonthCalendar1_DateChanged(كائن المرسل ، DateRangeEventArgs e)
{
تقويم MonthCalendar = المرسل (MonthCalendar) ؛
فار اليوم = التقويم. تاريخ اليوم؛
فار selectedDatesStart = هـ. بداية؛
فار selectedDatesEnd = هـ. نهاية؛
}
انقر فوق زر الحدث
يتم تشغيل وظيفة معالج حدث النقر عند النقر فوق الزر.
خاصفارغbutton1_Click(كائن المرسل ، EventArgs e)
{
زر زر = (زر) المرسل ؛
سلسلة textValue = زر. نص؛
}
هيكل معالج الأحداث
معالجات الأحداث لها معلمتان أساسيتان: المرسل وكائن الحدث.
يُعد المرسل مرجعًا لعنصر واجهة المستخدم أو الكائن الذي أدى إلى تشغيل الحدث ، مثل زر أو مربع اختيار أو لوحة. على سبيل المثال ، في حدث تم تغيير مربع الاختيار ، سيكون المرسل هو مربع الاختيار الذي نقر عليه المستخدم.
تحتوي معلمة الحدث على كائن يخزن بيانات حول الحدث الذي وقع. يمكن أن يشمل ذلك إحداثيات X و Y للنقرة على الزر ، أو موقع الماوس في اللحظة التي يبدأ فيها الحدث.
خاصفارغpanel1_DragDrop(كائن المرسل ، DragEventArgs e)
{
// الوصول إلى خصائص عنصر واجهة المستخدم الذي أطلق الحدث
لوحة لوحة = (لوحة) المرسل ؛
فريق. ممكن = خاطئة;
// الوصول إلى البيانات من الحدث
فار eventData = e. بيانات؛
}
كيفية إنشاء واستخدام معالجات الأحداث
أولاً ، قم بإنشاء ملف تطبيق Winforms Forms في Visual Studio. إذا كنت مستخدمًا جديدًا لـ Windows Forms ، فهناك العديد منها استنساخ التطبيقات التي يمكنك إنشاؤها أثناء تعلم نماذج Windows.
معالجات الأحداث على القماش
يمكنك إنشاء معالجات الأحداث من نافذة الخصائص على الجانب الأيمن من اللوحة. بمجرد إنشاء تطبيق Windows Forms جديد ، قم بإنشاء معالج حدث لعنصر واجهة مستخدم مربع الاختيار. سيبدأ هذا عندما يقوم المستخدم بتحديد مربع الاختيار أو إلغاء تحديده.
- افتح قائمة الأدوات على يسار Visual Studio. اسحب عنصر واجهة مستخدم مربّع الاختيار وأفلته على اللوحة.
- قم بتمييز مربع الاختيار على اللوحة.
- في نافذة الخصائص على اللوحة اليمنى ، انقر على أيقونة البرق الصفراء لعرض قائمة الأحداث. قم بالتمرير لأسفل إلى ملف تم التغيير حدث.
- انقر فوق المساحة الفارغة بجوار ملف تم التغيير حدث. سيؤدي هذا تلقائيًا إلى إنشاء وظيفة جديدة للتعامل مع الحدث. سيتم إنشاء الوظيفة في الجزء الخلفي من التعليمات البرمجية للتطبيق ، في ملف
ملف .cs. خاصفارغcheckBox1_CheckedChanged(كائن المرسل ، EventArgs e)
{
// رمزك هنا
}
معالجي الأحداث الذين يستخدمون الكود وراء
أنشئ وظيفة جديدة في الكود الموجود خلفها واربطها بعنصر واجهة المستخدم على اللوحة.
- على اللوحة القماشية ، انقر واسحب عنصر واجهة مستخدم الزر. بشكل افتراضي ، سيكون اسم الزر الجديد "button1".
- فتح
.cs. إذا تركت اسم تطبيق Windows Form الافتراضي "Form1" ، فسيكون هذا Form1.cs. - داخل فئة Form1 ، قم بإنشاء دالة جديدة. تأكد من أنه يتبع بنية معالج الأحداث ، ويحتوي على معلمتين للمرسل وكائن الحدث.
خاصفارغbutton1_MouseHoverEvent(كائن المرسل ، EventArgs e)
{
// رمزك هنا
} - قم بربط معالج الحدث بحدث تمرير الماوس الخاص بـ button1. يمكنك القيام بذلك في المنشئ.
عام Form1 ()
{
InitializeComponent () ،
هذه.button1.MouseHover + = button1_MouseHoverEvent ؛
} - بدلاً من ذلك ، يمكنك أيضًا ربط الوظيفة بالحدث باستخدام نافذة الخصائص على اللوحة. افتح نافذة الخصائص ، وأدخل اسم معالج الحدث في حقل MouseHover. هذا سوف يكون button1_MouseHoverEvent.
كيفية استخدام نفس معالج الأحداث عبر أحداث متعددة
يمكنك ربط نفس الوظيفة بأحداث متعددة. في هذه الحالة ، إذا كانت هناك وظيفة واحدة تسمى MouseEvent، يمكنك إضافة معالج الحدث إلى كل من حدث النقر بالماوس والماوس. هذا سوف يعالج كلا الحدثين باستخدام نفس الوظيفة.
هذه.button1.MouseHover + = button1_MouseEvent ؛
هذه.button1.MouseClick + = button1_MouseEvent ؛
استخدام الأحداث في تطبيق نموذج Windows
يسمح لك تطبيق Windows Forms بسحب وإسقاط عناصر واجهة المستخدم المختلفة مثل الأزرار أو اللوحات أو مربعات النص على لوحة الرسم. يمكنك إضافة معالجات الأحداث إلى عناصر واجهة المستخدم هذه ، بناءً على الأحداث المختلفة التي يمكن أن تحدث داخل التطبيق.
إذا كنت تقوم بإنشاء تطبيق Windows ، فقد ترغب أيضًا في إضافة صور أو رسومات كجزء من واجهة المستخدم الخاصة بك. يمكنك استخدام فئات C # المختلفة مثل فئة الرسم أو القلم أو اللون ، والتي ستسمح لك برسم أنواع مختلفة من الأشكال على اللوحة القماشية.