Οι Φόρμες των Windows σάς επιτρέπουν να δημιουργείτε εφαρμογές επιφάνειας εργασίας οπτικά, σύροντας στοιχεία διεπαφής χρήστη σε έναν καμβά. Αυτά τα στοιχεία διεπαφής χρήστη περιλαμβάνουν γραφικά στοιχεία όπως κουμπιά, πίνακες ή πλαίσια ελέγχου.

Κάθε στοιχείο διεπαφής χρήστη λαμβάνει ορισμένα συμβάντα. Για παράδειγμα, μπορείτε να έχετε ένα συμβάν κλικ για κουμπιά, ένα αλλαγμένο συμβάν για τα πλαίσια ελέγχου ή ένα συμβάν μεταφοράς και απόθεσης για πίνακες.

Τα συμβάντα χρησιμοποιούν χειριστές συμβάντων ή συναρτήσεις, οι οποίες εκτελούνται μόνο όταν συμβαίνει το συγκεκριμένο συμβάν.

Τύποι συμβάντων που χρησιμοποιούνται για διαφορετικά στοιχεία διεπαφής χρήστη

Κάθε στοιχείο διεπαφής χρήστη έχει μια λίστα συμβάντων. Υπάρχουν πολλά μαθήματα όπου μπορείτε μάθετε για σημαντικές θεωρίες και πρακτικές UX ή UI για να σας βοηθήσει να αποφασίσετε ποια στοιχεία διεπαφής χρήστη θα χρησιμοποιήσετε. Ακολουθούν μερικά παραδείγματα συμβάντων που χρησιμοποιούνται από στοιχεία διεπαφής χρήστη.

Συμβάντα Key Down, Key Up ή Key Press

instagram viewer

Τα στοιχεία διεπαφής χρήστη που επιτρέπουν στο χρήστη να εισάγει κείμενο, όπως ένα πλαίσιο κειμένου, μπορούν να χρησιμοποιήσουν αυτά τα συμβάντα. Αυτά τα συμβάντα ενεργοποιούνται κάθε φορά που ο χρήστης πατάει ένα πλήκτρο στο πληκτρολόγιό του.

Αυτά μπορεί να είναι χρήσιμα σε σενάρια όπου έχετε λειτουργία αναζήτησης και μπορεί να χρειαστεί να ελέγχετε συνεχώς ποια είναι η τιμή του πλαισίου κειμένου.

ιδιωτικόςκενόςtextBox1_KeyUp(αποστολέας αντικειμένου, KeyEventArgs e)
{
TextBox textbox = (TextBox) αποστολέας;
συμβολοσειρά currentTextBoxValue = πλαίσιο κειμένου. Κείμενο;
}

Φόρτωση συμβάντος

Το συμβάν φόρτωσης εμφανίζεται όταν η φόρμα ή ένα στοιχείο διεπαφής χρήστη αποδίδεται στην οθόνη. Μπορείτε να χρησιμοποιήσετε αυτό το συμβάν όταν θέλετε να προκύψει συγκεκριμένη λειτουργικότητα στο στάδιο προετοιμασίας της φόρμας ή του στοιχείου ελέγχου.

Ένα σενάριο όπου αυτό μπορεί να είναι χρήσιμο είναι εάν θέλετε να προσθέσετε μέσω προγραμματισμού στοιχεία ελέγχου στη φόρμα ενώ φορτώνεται ακόμη.

ιδιωτικόςκενόςForm1_Load(αποστολέας αντικειμένου, EventArgs e)
{
ToolTip toolTip1 = νέος ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = αληθής;
toolTip1.SetToolTip (this.button1, "Το κουμπί μου 1");
toolTip1.Αναδυόμενο παράθυρο += Αυτό.ToolTip1_Popup;
}

Το αναδυόμενο συμβάν συμβουλής εργαλείου συμβαίνει όταν τοποθετείτε το δείκτη του ποντικιού πάνω από ένα στοιχείο διεπαφής χρήστη στην εφαρμογή και εμφανίζεται μια επεξήγηση εργαλείου. Τα ορίσματα που μεταβιβάζονται στο πρόγραμμα χειρισμού συμβάντων σάς επιτρέπουν να έχετε πρόσβαση σε δεδομένα σχετικά με την επεξήγηση εργαλείου, όπως το κείμενο ή το μέγεθός της.

ιδιωτικόςκενόςΣυμβουλή εργαλείου1_Αναδυόμενο παράθυρο(αποστολέας αντικειμένου, PopupEventArgs e)
{
Συμβουλή εργαλείου = (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 box = (CheckBox) αποστολέας;
Κατάσταση CheckState = πλαίσιο ελέγχου. CheckState;
bool isChecked = πλαίσιο ελέγχου. Τετραγωνισμένος;
}

Η τιμή άλλαξε, η επιλεγμένη τιμή άλλαξε ή η ημερομηνία άλλαξε συμβάντα

Το συμβάν αλλαγής τιμής είναι διαθέσιμο σε στοιχεία διεπαφής χρήστη που σας επιτρέπουν να ορίσετε μια επιλογή για να αλλάξετε μια τιμή. Αυτό περιλαμβάνει σύνθετα πλαίσια, επιλογείς ημερομηνίας και ώρας ή το ημερολόγιο. Η συνάρτηση ενεργοποιείται όταν ο χρήστης επιλέξει μια νέα τιμή.

ιδιωτικόςκενόςmonthCalendar1_DateCanged(αποστολέας αντικειμένου, DateRangeEventArgs e)
{
MonthCalendar ημερολόγιο = (MonthCalendar) αποστολέας;
var σήμερα = ημερολόγιο. ΣήμεραΗμερομηνία;
var SelectDatesStart = e. Αρχή;
var επιλεγμένεςΗμερομηνίεςΤέλος = ε. Τέλος;
}

Κάντε κλικ στο κουμπί Συμβάν

Η λειτουργία χειρισμού συμβάντων κλικ ενεργοποιείται όταν κάνετε κλικ σε ένα κουμπί.

ιδιωτικόςκενόςbutton1_Κάντε κλικ(αποστολέας αντικειμένου, EventArgs e)
{
Κουμπί κουμπιού = (Κουμπί) αποστολέας;
συμβολοσειρά textValue = κουμπί. Κείμενο;
}

Η δομή ενός χειριστή συμβάντων

Οι χειριστές συμβάντων έχουν δύο κύριες παραμέτρους: τον αποστολέα και ένα αντικείμενο συμβάντος.

Ο αποστολέας είναι μια αναφορά στο στοιχείο ή αντικείμενο διεπαφής χρήστη που έχει ενεργοποιήσει το συμβάν, όπως ένα κουμπί, ένα πλαίσιο ελέγχου ή ένα πλαίσιο. Για παράδειγμα, σε ένα συμβάν αλλαγμένο πλαίσιο ελέγχου, ο αποστολέας θα είναι το πλαίσιο ελέγχου στο οποίο ο χρήστης έκανε κλικ.

Η παράμετρος συμβάντος περιέχει ένα αντικείμενο που αποθηκεύει δεδομένα σχετικά με το συμβάν που συνέβη. Αυτό μπορεί να περιλαμβάνει τις συντεταγμένες X και Y ενός κλικ κουμπιού ή τη θέση του ποντικιού τη στιγμή που ενεργοποιείται το συμβάν.

ιδιωτικόςκενόςpanel1_DragDrop(αποστολέας αντικειμένου, DragEventArgs e)
{
// Πρόσβαση στις ιδιότητες του στοιχείου διεπαφής χρήστη που ενεργοποίησε το συμβάν
Πίνακας πίνακα = (Πίνακας) αποστολέας;
πίνακας. Ενεργοποιημένο = ψευδής;
// Πρόσβαση σε δεδομένα από το συμβάν
var eventData = ε. Δεδομένα;
}

Πώς να δημιουργήσετε και να χρησιμοποιήσετε προγράμματα χειρισμού συμβάντων

Πρώτα, δημιουργήστε ένα νέο Εφαρμογή Winforms Forms στο Visual Studio. Αν είστε νέος στις φόρμες των Windows, υπάρχουν πολλές Κλωνοποιήστε εφαρμογές που μπορείτε να δημιουργήσετε κατά την εκμάθηση φορμών των Windows.

Χειριστές συμβάντων στον καμβά

Μπορείτε να δημιουργήσετε προγράμματα χειρισμού συμβάντων από το παράθυρο ιδιοτήτων στη δεξιά πλευρά του καμβά. Αφού δημιουργήσετε μια νέα εφαρμογή Φόρμες των Windows, δημιουργήστε ένα πρόγραμμα χειρισμού συμβάντων για το στοιχείο διεπαφής χρήστη του πλαισίου ελέγχου. Αυτό θα ενεργοποιηθεί όταν ο χρήστης ελέγξει ή καταργήσει το πλαίσιο ελέγχου.

  1. Ανοίξτε το μενού της εργαλειοθήκης στα αριστερά του Visual Studio. Σύρετε και αποθέστε ένα στοιχείο διεπαφής χρήστη του πλαισίου ελέγχου στον καμβά.
  2. Επισημάνετε το πλαίσιο ελέγχου στον καμβά.
  3. Στο παράθυρο ιδιοτήτων στο δεξιό πλαίσιο, κάντε κλικ στο εικονίδιο του κίτρινου κεραυνού για να προβάλετε τη λίστα συμβάντων. Κάντε κύλιση προς τα κάτω στο ΕπιλεγμένοΑλλαγή Εκδήλωση.
  4. Κάντε κλικ στον κενό χώρο δίπλα στο ΕπιλεγμένοΑλλαγή Εκδήλωση. Αυτό θα δημιουργήσει αυτόματα μια νέα λειτουργία για τη διαχείριση του συμβάντος. Η συνάρτηση θα δημιουργηθεί στο πίσω μέρος του κώδικα της εφαρμογής, στο δικό σας αρχείο .cs.
    ιδιωτικόςκενόςcheckBox1_CheckedChanged(αποστολέας αντικειμένου, EventArgs e)
    {
    // Ο κωδικός σας εδώ
    }

Χειριστές συμβάντων που χρησιμοποιούν τον κώδικα πίσω

Δημιουργήστε μια νέα συνάρτηση στον κώδικα πίσω και συνδέστε τη με το στοιχείο διεπαφής χρήστη στον καμβά.

  1. Στον καμβά, κάντε κλικ και σύρετε ένα κουμπί στοιχείου διεπαφής χρήστη. Από προεπιλογή, το όνομα του νέου κουμπιού θα είναι "button1".
  2. Ανοιξε .cs. Εάν έχετε αφήσει το προεπιλεγμένο όνομα της εφαρμογής "Form1" των Windows Form, αυτό θα ήταν Form1.cs.
  3. Μέσα στην κλάση Form1, δημιουργήστε μια νέα συνάρτηση. Βεβαιωθείτε ότι ακολουθεί τη δομή ενός προγράμματος χειρισμού συμβάντων και ότι έχει δύο παραμέτρους για τον αποστολέα και το αντικείμενο συμβάντος.
    ιδιωτικόςκενόςbutton1_MouseHoverEvent(αποστολέας αντικειμένου, EventArgs e)
    {
    // Ο κωδικός σας εδώ
    }
  4. Συνδέστε το πρόγραμμα χειρισμού συμβάντων με το συμβάν αιώρησης του ποντικιού του button1. Μπορείτε να το κάνετε αυτό στον κατασκευαστή.
    δημόσιο Form1()
    {
    InitializeComponent();
    Αυτό.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Εναλλακτικά, μπορείτε επίσης να συνδέσετε τη συνάρτηση με το συμβάν χρησιμοποιώντας το παράθυρο ιδιοτήτων στον καμβά. Ανοίξτε το παράθυρο ιδιοτήτων και εισαγάγετε το όνομα του προγράμματος χειρισμού συμβάντων στο πεδίο MouseHover. Αυτό θα ήταν button1_MouseHoverEvent.

Πώς να χρησιμοποιήσετε το ίδιο πρόγραμμα χειρισμού συμβάντων σε πολλά συμβάντα

Μπορείτε να συνδέσετε την ίδια λειτουργία με πολλά συμβάντα. Σε αυτήν την περίπτωση, αν καλούνταν μία συνάρτηση MouseEvent, θα μπορούσατε να προσθέσετε αυτό το πρόγραμμα χειρισμού συμβάντων και στο συμβάν ποντικιού και κλικ του ποντικιού. Στη συνέχεια, θα χειριστεί και τα δύο συμβάντα χρησιμοποιώντας την ίδια λειτουργία.

Αυτό.button1.MouseHover += button1_MouseEvent;
Αυτό.button1.MouseClick += button1_MouseEvent;

Χρήση συμβάντων σε μια εφαρμογή φόρμας των Windows

Μια εφαρμογή Φόρμες των Windows σάς επιτρέπει να σύρετε και να αποθέσετε διάφορα στοιχεία διεπαφής χρήστη, όπως κουμπιά, πίνακες ή πλαίσια κειμένου σε έναν καμβά. Μπορείτε να προσθέσετε χειριστές συμβάντων σε αυτά τα στοιχεία διεπαφής χρήστη, με βάση τα διαφορετικά συμβάντα που μπορούν να προκύψουν εντός της εφαρμογής.

Εάν δημιουργείτε μια εφαρμογή Windows, μπορεί επίσης να θέλετε να προσθέσετε εικόνες ή γραφικά ως μέρος της διεπαφής χρήστη σας. Μπορείτε να χρησιμοποιήσετε διάφορες κλάσεις C#, όπως την κατηγορία Graphic, Pen ή Color, που θα σας επιτρέψουν να σχεδιάσετε διαφορετικούς τύπους σχημάτων στον καμβά.