Windows Forms vă permite să creați aplicații desktop vizual, trăgând elementele UI pe o pânză. Aceste elemente ale interfeței de utilizare includ widget-uri precum butoane, panouri sau casete de selectare.

Fiecare element UI primește anumite evenimente. De exemplu, puteți avea un eveniment de clic pentru butoane, un eveniment modificat pentru casete de selectare sau un eveniment de glisare și plasare pentru panouri.

Evenimentele folosesc handlere sau funcții de evenimente, care se execută numai atunci când are loc acel eveniment.

Tipuri de evenimente utilizate pentru diferite elemente ale UI

Fiecare element UI are o listă de evenimente. Sunt multe cursuri unde poți aflați despre teorii și practici importante UX sau UI pentru a vă ajuta să decideți ce elemente de UI să utilizați. Iată câteva exemple de evenimente utilizate de elementele UI.

Evenimente taste jos, taste sus sau apăsare taste

Elementele UI care permit utilizatorului să introducă text, cum ar fi o casetă de text, pot folosi aceste evenimente. Aceste evenimente sunt declanșate de fiecare dată când utilizatorul apasă o tastă de pe tastatură.

instagram viewer

Acestea pot fi utile în scenariile în care aveți funcționalitate de căutare și poate fi necesar să verificați constant care este valoarea casetei de text.

privatvidtextBox1_KeyUp(Expeditorul obiectului, KeyEventArgs e)
{
TextBox textbox = (TextBox) expeditor;
șir currentTextBoxValue = casetă text. Text;
}

Încărcare eveniment

Evenimentul de încărcare are loc atunci când formularul sau un element UI este redat pe ecran. Puteți utiliza acest eveniment atunci când doriți să apară o anumită funcționalitate în etapa de inițializare a formularului sau a controlului.

Un scenariu în care acest lucru poate fi util este dacă doriți să adăugați în mod programatic controale în formular în timp ce acesta încă se încarcă.

privatvidForm1_Load(Expeditorul obiectului, EventArgs e)
{
ToolTip toolTip1 = nou Sfat instrument();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = Adevărat;
toolTip1.SetToolTip (this.button1, "Butonul meu1");
toolTip1.Popup += acest.ToolTip1_Popup;
}

Evenimentul pop-up cu explicații are loc atunci când treceți cu mouse-ul peste un element de interfață de utilizare din aplicație și apare un balon explicativ. Argumentele transmise în handler-ul de evenimente vă permit să accesați date despre balonul, cum ar fi textul sau dimensiunea acestuia.

privatvidToolTip1_Popup(Expeditorul obiectului, PopupEventArgs e)
{
ToolTip tooltip = expeditor (ToolTip);
string tooltipText = tooltip. GetToolTip (button1);
var tooltipSize = e. ToolTipSize;
}

Trageți și plasați evenimentul

Multe elemente ale interfeței de utilizare pot folosi evenimentul de glisare și plasare, inclusiv panoul, butonul, caseta de imagine, caseta de grup și multe altele. Acest eveniment este declanșat atunci când utilizatorul trage un fișier în elementul UI.

privatvidpanel1_DragDrop(Expeditorul obiectului, DragEventArgs e)
{
șir[] fișiere = (șir[])e. Date. GetData (Formate de date. FileDrop, fals);
}

Evenimente Mouse Over și Mouse Leave

Evenimentul mouse-ul peste se declanșează atunci când mouse-ul trece peste un element UI. Odată ce mouse-ul pleacă și încetează să plutească peste element, evenimentul de plecare al mouse-ului este declanșat.

privatvidbutton1_MouseLeave(Expeditorul obiectului, EventArgs e)
{
Buton button = (Buton) expeditor;
var buttonText = buton. Text;
}

Bifat Eveniment modificat

Elementele UI care permit utilizatorului să selecteze o opțiune pot folosi evenimentul modificat verificat. Aceasta include butoanele radio și casetele de selectare. Funcția este declanșată atunci când bifați sau debifați caseta de selectare.

privatvidcheckBox1_CheckedChanged(Expeditorul obiectului, EventArgs e)
{
CheckBox checkbox = expeditor (CheckBox);
CheckState state = caseta de selectare. CheckState;
bool isChecked = caseta de selectare. Verificat;
}

Evenimente Valoare modificată, Valoare selectată modificată sau Data modificată

Evenimentul de modificare a valorii este disponibil pe elementele UI care vă permit să selectați o opțiune pentru a modifica o valoare. Acestea includ casetele combinate, selectorul de dată și oră sau calendarul. Funcția este declanșată atunci când utilizatorul selectează o nouă valoare.

privatvidmonthCalendar1_DateChanged(Expeditorul obiectului, DateRangeEventArgs e)
{
MonthCalendar calendar = (MonthCalendar) expeditor;
var azi = calendar. TodayDate;
var selectedDatesStart = e. Start;
var selectedDatesEnd = e. Sfârşit;
}

Faceți clic pe butonul Eveniment

Funcția de gestionare a evenimentelor de clic este declanșată atunci când faceți clic pe un buton.

privatvidbutonul1_Click(Expeditorul obiectului, EventArgs e)
{
Buton button = (Buton) expeditor;
șir textValue = buton. Text;
}

Structura unui handler de evenimente

Managerii de evenimente au doi parametri principali: expeditorul și un obiect eveniment.

Expeditorul este o referință la elementul sau obiectul UI care a declanșat evenimentul, cum ar fi un buton, casetă de selectare sau panou. De exemplu, într-un eveniment modificat de casetă de selectare, expeditorul ar fi caseta de selectare pe care a făcut clic utilizatorul.

Parametrul eveniment conține un obiect care stochează date despre evenimentul care a avut loc. Aceasta ar putea include coordonatele X și Y ale unui clic pe buton sau locația mouse-ului în momentul declanșării evenimentului.

privatvidpanel1_DragDrop(Expeditorul obiectului, DragEventArgs e)
{
// Accesați proprietățile elementului UI care a declanșat evenimentul
Panel panel = (Panel) expeditor;
panou. Activat = fals;
// Accesați datele de la eveniment
var eventData = e. Date;
}

Cum să creați și să utilizați manevrele de evenimente

Mai întâi, creați un nou Aplicația Winforms Forms în Visual Studio. Dacă sunteți nou în Windows Forms, există multe clonați aplicații pe care le puteți crea în timp ce învățați Windows Forms.

Operatorii de evenimente pe pânză

Puteți genera handlere de evenimente din fereastra de proprietăți din partea dreaptă a pânzei. După ce ați creat o nouă aplicație Windows Forms, creați un handler de evenimente pentru elementul UI casetă de selectare. Acest lucru se va declanșa atunci când utilizatorul bifează sau debifează caseta de selectare.

  1. Deschideți meniul casetei de instrumente din stânga Visual Studio. Trageți și plasați un element de interfață cu casetă de selectare pe pânză.
  2. Evidențiați caseta de selectare de pe pânză.
  3. În fereastra de proprietăți din panoul din dreapta, faceți clic pe pictograma fulger galben pentru a vizualiza lista de evenimente. Derulați în jos la BifatSchimbat eveniment.
  4. Faceți clic pe spațiul gol de lângă BifatSchimbat eveniment. Aceasta va genera automat o nouă funcție pentru a gestiona evenimentul. Funcția va fi creată în partea codului din spatele aplicației, în dvs fișier .cs.
    privatvidcheckBox1_CheckedChanged(Expeditorul obiectului, EventArgs e)
    {
    // Codul dvs. aici
    }

Manipulatorii de evenimente care folosesc codul din spate

Creați o nouă funcție în codul din spate și conectați-o la elementul UI de pe pânză.

  1. Pe pânză, faceți clic și trageți un element de interfață de utilizare cu butonul. În mod implicit, numele noului buton va fi „button1”.
  2. Deschis .cs. Dacă ați lăsat numele implicit al aplicației Windows Form „Form1”, acesta ar fi Form1.cs.
  3. În interiorul clasei Form1, creați o nouă funcție. Asigurați-vă că urmează structura unui handler de evenimente și are doi parametri pentru expeditor și obiectul eveniment.
    privatvidbutton1_MouseHoverEvent(Expeditorul obiectului, EventArgs e)
    {
    // Codul dvs. aici
    }
  4. Conectați handlerul de evenimente la evenimentul de trecere cu mouse-ul al butonului 1. Puteți face acest lucru în constructor.
    public Form1()
    {
    InitializeComponent();
    acest.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Alternativ, puteți, de asemenea, să legați funcția la eveniment utilizând fereastra de proprietăți de pe pânză. Deschideți fereastra de proprietăți și introduceți numele handler-ului dvs. de evenimente în câmpul MouseHover. Asta ar fi button1_MouseHoverEvent.

Cum să utilizați același handler de evenimente pentru mai multe evenimente

Puteți lega aceeași funcție la mai multe evenimente. În acest caz, dacă a existat o singură funcție numită MouseEvent, puteți adăuga acel handler de evenimente atât la evenimentul de trecere cu mouse-ul, cât și la evenimentul de clic al mouse-ului. Aceasta va gestiona apoi ambele evenimente folosind aceeași funcție.

acest.button1.MouseHover += button1_MouseEvent;
acest.button1.MouseClick += button1_MouseEvent;

Utilizarea evenimentelor într-o aplicație Windows Form

O aplicație Windows Forms vă permite să glisați și să plasați diverse elemente ale UI, cum ar fi butoane, panouri sau casete de text pe o pânză. Puteți adăuga handler de evenimente la aceste elemente UI, pe baza diferitelor evenimente care pot apărea în cadrul aplicației.

Dacă construiți o aplicație Windows, este posibil să doriți să adăugați imagini sau elemente grafice ca parte a interfeței dvs. de utilizator. Puteți utiliza diverse clase C#, cum ar fi clasa Graphic, Pen sau Color, care vă va permite să desenați diferite tipuri de forme pe pânză.