Windows Forms מאפשר לך ליצור יישומי שולחן עבודה באופן ויזואלי, על ידי גרירת רכיבי ממשק משתמש על קנבס. רכיבי ממשק משתמש אלה כוללים ווידג'טים כגון לחצנים, לוחות או תיבות סימון.

כל רכיב ממשק משתמש מקבל אירועים מסוימים. לדוגמה, אתה יכול לקבל אירוע לחיצה עבור לחצנים, אירוע שהשתנה עבור תיבות סימון, או אירוע גרירה ושחרור עבור לוחות.

אירועים משתמשים במטפלי אירועים או פונקציות, שמתבצעות רק כאשר האירוע המסוים הזה מתרחש.

סוגי אירועים המשמשים עבור רכיבי ממשק משתמש שונים

לכל רכיב ממשק משתמש יש רשימה של אירועים. יש הרבה קורסים שבהם אתה יכול למד על תיאוריות ושיטות עבודה חשובות של UX או ממשק משתמש כדי לעזור לך להחליט באילו רכיבי ממשק משתמש להשתמש. הנה כמה דוגמאות לאירועים המשמשים את רכיבי ממשק המשתמש.

אירועי מקש למטה, מקש למעלה או לחיצת מקש

רכיבי ממשק משתמש המאפשרים למשתמש להזין טקסט, כגון תיבת טקסט, יכולים להשתמש באירועים אלה. אירועים אלו מופעלים בכל פעם שהמשתמש לוחץ על מקש במקלדת שלו.

אלה יכולים להיות שימושיים בתרחישים שבהם יש לך פונקציונליות חיפוש, וייתכן שתצטרך לבדוק כל הזמן מה הערך של תיבת הטקסט.

פְּרָטִיבָּטֵלtextBox1_KeyUp(שולח אובייקט, KeyEventArgs e)
instagram viewer

{
TextBox textbox = (TextBox) שולח;
מחרוזת currentTextBoxValue = תיבת טקסט. טֶקסט;
}

טען אירוע

אירוע הטעינה מתרחש כאשר הטופס או רכיב ממשק המשתמש מוצגים על המסך. אתה יכול להשתמש באירוע זה כאשר אתה רוצה שפונקציונליות ספציפית תתרחש בשלב האתחול של הטופס או הפקד.

תרחיש אחד שבו זה עשוי להיות שימושי הוא אם ברצונך להוסיף פקדים לטופס באופן פרוגרמטי בזמן שהוא עדיין נטען.

פְּרָטִיבָּטֵלטופס1_טען(שולח אובייקט, EventArgs e)
{
ToolTip toolTip1 = חָדָשׁ ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = נָכוֹן;
toolTip1.SetToolTip (this.button1, "הכפתור שלי 1");
toolTip1.Popup += זֶה.ToolTip1_Popup;
}

אירוע החלון הקופץ של תיאור כלים מתרחש כאשר אתה מרחף מעל רכיב ממשק משתמש באפליקציה, ומופיע תיאור כלים. הארגומנטים שהועברו למטפל באירועים מאפשרים לך לגשת לנתונים על הסבר הכלים, כגון הטקסט או הגודל שלו.

פְּרָטִיבָּטֵלToolTip1_Popup(שולח אובייקט, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) שולח;
string tooltipText = תיאור כלי. GetToolTip (כפתור1);
var tooltipSize = ה. ToolTipSize;
}

גרור ושחרר אירוע

רכיבי ממשק משתמש רבים יכולים להשתמש באירוע גרירה ושחרור, כולל החלונית, הכפתור, תיבת התמונות, התיבה הקבוצתית ועוד. אירוע זה מופעל כאשר המשתמש גורר קובץ לרכיב ממשק המשתמש.

פְּרָטִיבָּטֵלpanel1_DragDrop(שולח אובייקט, DragEventArgs e)
{
string[] files = (string[])e. נתונים. GetData (DataFormats. FileDrop, שֶׁקֶר);
}

Mouse Over ו-Mouse Leave Events

העכבר מעל אירוע מופעל כאשר העכבר מרחף מעל אלמנט ממשק משתמש. ברגע שהעכבר עוזב ומפסיק לרחף מעל האלמנט, אירוע עזיבת העכבר מופעל.

פְּרָטִיבָּטֵלbutton1_MouseLeave(שולח אובייקט, EventArgs e)
{
כפתור כפתור = (כפתור) שולח;
var buttonText = כפתור. טֶקסט;
}

מסומן אירוע שונה

רכיבי ממשק משתמש המאפשרים למשתמש לבחור אפשרות יכולים להשתמש באירוע השינוי המסומן. זה כולל לחצני בחירה ותיבות סימון. הפונקציה מופעלת כאשר אתה מסמן או מבטל את הסימון של תיבת הסימון.

פְּרָטִיבָּטֵלcheckBox1_CheckedChanged(שולח אובייקט, EventArgs e)
{
CheckBox checkbox = (CheckBox) שולח;
מצב CheckState = תיבת סימון. CheckState;
bool isChecked = תיבת סימון. בָּדוּק;
}

ערך שונה, ערך שנבחר השתנה, או תאריך שינוי אירועים

אירוע הערך השתנה זמין ברכיבי ממשק משתמש המאפשרים לך לבחור אפשרות לשינוי ערך. זה כולל תיבות משולבות, בוחרי תאריך ושעה או לוח השנה. הפונקציה מופעלת כאשר המשתמש בוחר ערך חדש.

פְּרָטִיבָּטֵלmonthCalendar1_DateChanged(שולח אובייקט, DateRangeEventArgs ה)
{
MonthCalendar Calendar = (MonthCalendar) שולח;
var היום = לוח שנה. תאריך היום;
var selectedDatesStart = ה. הַתחָלָה;
var selectDatesEnd = ה. סוֹף;
}

לחץ על אירוע כפתור

פונקציית המטפל באירועי קליק מופעלת כאשר אתה לוחץ על כפתור.

פְּרָטִיבָּטֵלbutton1_לחץ(שולח אובייקט, EventArgs e)
{
כפתור כפתור = (כפתור) שולח;
מחרוזת textValue = לחצן. טֶקסט;
}

המבנה של מטפל באירועים

למטפלי אירועים יש שני פרמטרים עיקריים: השולח ואובייקט אירוע.

השולח הוא הפניה לרכיב ממשק המשתמש או לאובייקט שהפעיל את האירוע, כגון לחצן, תיבת סימון או חלונית. לדוגמה, באירוע שונה של תיבת סימון, השולח יהיה תיבת הסימון שהמשתמש לחץ עליה.

פרמטר האירוע מכיל אובייקט המאחסן נתונים על האירוע שהתרחש. זה יכול לכלול את קואורדינטות ה-X וה-Y של לחיצת כפתור, או את מיקום העכבר ברגע שהאירוע מופעל.

פְּרָטִיבָּטֵלpanel1_DragDrop(שולח אובייקט, DragEventArgs e)
{
// גישה למאפיינים של רכיב ממשק המשתמש שהפעיל את האירוע
לוח פאנל = (פאנל) שולח;
לוּחַ. מופעל = שֶׁקֶר;
// גישה לנתונים מהאירוע
var eventData = ה. נתונים;
}

כיצד ליצור ולהשתמש במטפלי אירועים

ראשית, צור חדש אפליקציית Winforms Forms ב-Visual Studio. אם אתה חדש ב-Windows Forms, יש הרבה שיבוט אפליקציות שאתה יכול ליצור תוך כדי לימוד Windows Forms.

מטפלי אירועים על הקנבס

אתה יכול ליצור מטפלי אירועים מחלון המאפיינים בצד ימין של הבד. לאחר שיצרת יישום חדש של Windows Forms, צור מטפל באירועים עבור רכיב ממשק המשתמש של תיבת הסימון. זה יופעל כאשר המשתמש יסמן או יבטל את הסימון של תיבת הסימון.

  1. פתח את תפריט ארגז הכלים בצד שמאל של Visual Studio. גרור ושחרר רכיב ממשק משתמש של תיבת סימון על הקנבס.
  2. סמן את תיבת הסימון על הבד.
  3. בחלון המאפיינים בחלונית הימנית, לחץ על סמל הברק הצהוב כדי להציג את רשימת האירועים. גלול מטה אל מסומן השתנה מִקרֶה.
  4. לחץ על החלל הריק ליד מסומן השתנה מִקרֶה. פעולה זו תיצור אוטומטית פונקציה חדשה לטיפול באירוע. הפונקציה תיווצר בחלק הקוד שמאחורי האפליקציה, שלך קובץ .cs.
    פְּרָטִיבָּטֵלcheckBox1_CheckedChanged(שולח אובייקט, EventArgs e)
    {
    // הקוד שלך כאן
    }

מטפלי אירועים המשתמשים בקוד שמאחור

צור פונקציה חדשה בקוד שמאחור וקשר אותה לאלמנט ממשק המשתמש על הקנבס.

  1. על הקנבס, לחץ וגרור רכיב ממשק משתמש של כפתור. כברירת מחדל, שם הכפתור החדש יהיה "כפתור1".
  2. לִפְתוֹחַ .cs. אם השארת את שם יישום ברירת המחדל של Windows Form של "Form1", זה יהיה Form1.cs.
  3. בתוך המחלקה Form1, צור פונקציה חדשה. ודא שהוא עוקב אחר המבנה של מטפל באירועים, ויש לו שני פרמטרים עבור השולח ואובייקט האירוע.
    פְּרָטִיבָּטֵלbutton1_MouseHoverEvent(שולח אובייקט, EventArgs e)
    {
    // הקוד שלך כאן
    }
  4. קשר את מטפל האירועים לאירוע ריחוף העכבר של button1. אתה יכול לעשות זאת בקונסטרוקטור.
    פּוּמְבֵּי צורה 1()
    {
    InitializeComponent();
    זֶה.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. לחלופין, ניתן גם לקשר את הפונקציה לאירוע באמצעות חלון המאפיינים על הקנבס. פתח את חלון המאפיינים והזן את השם של מטפל האירועים שלך בשדה MouseHover. זה יהיה button1_MouseHoverEvent.

כיצד להשתמש באותו מטפל באירועים על פני מספר אירועים

אתה יכול לקשר את אותה פונקציה למספר אירועים. במקרה זה, אם הייתה פונקציה בודדת שנקראה MouseEvent, אתה יכול להוסיף את המטפל באירוע גם לאירוע ריחוף העכבר וגם לאירוע לחיצה על העכבר. זה יטפל בשני האירועים באמצעות אותה פונקציה.

זֶה.button1.MouseHover += button1_MouseEvent;
זֶה.button1.MouseClick += button1_MouseEvent;

שימוש באירועים ביישום טופס של Windows

יישום Windows Forms מאפשר לך לגרור ולשחרר רכיבי ממשק משתמש שונים כגון לחצנים, לוחות או תיבות טקסט על בד. אתה יכול להוסיף מטפלי אירועים לרכיבי ממשק משתמש אלה, על סמך האירועים השונים שיכולים להתרחש בתוך האפליקציה.

אם אתה בונה יישום Windows, ייתכן שתרצה להוסיף תמונות או גרפיקה כחלק מממשק המשתמש שלך. אתה יכול להשתמש במחלקות C# שונות כמו המחלקה Graphic, Pen או Color, מה שיאפשר לך לצייר סוגים שונים של צורות על הבד.