Windows Forms vam omogućuje vizualno stvaranje desktop aplikacija povlačenjem elemenata korisničkog sučelja na platno. Ovi elementi korisničkog sučelja uključuju widgete kao što su gumbi, ploče ili potvrdni okviri.

Svaki element korisničkog sučelja prima određene događaje. Na primjer, možete imati događaj klika za gumbe, promijenjeni događaj za potvrdne okvire ili događaj povuci i ispusti za ploče.

Događaji koriste rukovaoce događajima ili funkcije, koje se izvršavaju samo kada se taj određeni događaj dogodi.

Vrste događaja koji se koriste za različite elemente korisničkog sučelja

Svaki element korisničkog sučelja ima popis događaja. Postoji mnogo tečajeva gdje možete naučiti o važnim teorijama i praksama UX ili UI koji će vam pomoći da odlučite koje elemente korisničkog sučelja koristiti. Evo nekoliko primjera događaja koje koriste elementi korisničkog sučelja.

Tipka dolje, tipka gore ili tipka Pritisnite događaji

Elementi korisničkog sučelja koji omogućuju korisniku da unese tekst, kao što je tekstni okvir, mogu koristiti te događaje. Ti se događaji pokreću svaki put kada korisnik pritisne tipku na tipkovnici.

Oni mogu biti korisni u scenarijima u kojima imate funkciju pretraživanja, a možda ćete morati stalno provjeravati vrijednost tekstualnog okvira.

privatniponištititextBox1_KeyUp(pošiljatelj objekta, KeyEventArgs e)
{
Tekstualni okvir za tekst = (TextBox) pošiljatelj;
string currentTextBoxValue = tekstualni okvir. Tekst;
}

Događaj učitavanja

Događaj učitavanja događa se kada se obrazac ili UI element prikaže na zaslonu. Ovaj događaj možete koristiti kada želite da se određena funkcionalnost pojavi u fazi inicijalizacije obrasca ili kontrole.

Jedan scenarij u kojem bi ovo moglo biti korisno je ako želite programski dodati kontrole obrascu dok se još učitava.

privatniponištitiObrazac1_Učitavanje(pošiljatelj objekta, EventArgs e)
{
ToolTip toolTip1 = novi Savjet ();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = pravi;
toolTip1.SetToolTip (ovaj.button1, "Moj gumb 1");
toolTip1.Popup += ovaj.ToolTip1_skočni prozor;
}

Događaj skočnog prozora s opisom alata događa se kada zadržite pokazivač iznad elementa korisničkog sučelja u aplikaciji i pojavi se opis alata. Argumenti proslijeđeni rukovatelju događaja omogućuju vam pristup podacima o opisu alata, kao što je njegov tekst ili veličina.

privatniponištitiToolTip1_skočni prozor(pošiljatelj objekta, PopupEventArgs e)
{
Tooltip tooltip = (ToolTip) pošiljatelj;
string tooltipText = opis alata. GetToolTip (button1);
var tooltipSize = e. ToolTipSize;
}

Događaj povuci i ispusti

Mnogi elementi korisničkog sučelja mogu koristiti događaj povlačenja i ispuštanja, uključujući ploču, gumb, okvir sa slikom, okvir grupe i još mnogo toga. Ovaj događaj se pokreće kada korisnik povuče datoteku u element korisničkog sučelja.

privatniponištitipanel1_DragDrop(pošiljatelj objekta, DragEventArgs e)
{
string[] datoteke = (string[])e. Podaci. GetData (DataFormats. FileDrop, lažno);
}

Događaji prijelaz mišem i napuštanje miša

Događaj miša iznad aktivira se kada miš prijeđe iznad elementa korisničkog sučelja. Nakon što miš napusti i prestane lebdjeti iznad elementa, pokreće se događaj napuštanja miša.

privatniponištitigumb1_MouseLeave(pošiljatelj objekta, EventArgs e)
{
Gumb gumba = (gumb) pošiljatelj;
var tekst gumba = gumb. Tekst;
}

Označeno Promijenjeni događaj

Elementi korisničkog sučelja koji omogućuju korisniku odabir opcije mogu koristiti označeni promijenjeni događaj. To uključuje radio gumbe i potvrdne okvire. Funkcija se aktivira kada potvrdite ili poništite potvrdni okvir.

privatniponištiticheckBox1_CheckedChanged(pošiljatelj objekta, EventArgs e)
{
CheckBox potvrdni okvir = (CheckBox) pošiljatelj;
Stanje provjere = potvrdni okvir. CheckState;
bool isChecked = potvrdni okvir. Provjereno;
}

Vrijednost promijenjena, odabrana vrijednost promijenjena ili događaji promjene datuma

Događaj promjene vrijednosti dostupan je na elementima korisničkog sučelja koji vam omogućuju odabir opcije za promjenu vrijednosti. To uključuje kombinirane okvire, birače datuma i vremena ili kalendar. Funkcija se aktivira kada korisnik odabere novu vrijednost.

privatniponištitimjesecCalendar1_DateChanged(pošiljatelj objekta, DateRangeEventArgs e)
{
MonthCalendar calendar = (MonthCalendar) pošiljatelj;
var danas = kalendar. Današnji datum;
var odabrani datumi Početak = e. Početak;
var odabrani datumi Kraj = e. Kraj;
}

Kliknite gumb Događaj

Funkcija rukovanja događajem klika se pokreće kada kliknete gumb.

privatniponištitigumb1_Kliknite(pošiljatelj objekta, EventArgs e)
{
Gumb gumba = (gumb) pošiljatelj;
string textValue = gumb. Tekst;
}

Struktura rukovatelja događajima

Rukovatelji događajima imaju dva primarna parametra: pošiljatelja i objekt događaja.

Pošiljatelj je referenca na UI element ili objekt koji je pokrenuo događaj, kao što je gumb, potvrdni okvir ili ploča. Na primjer, u događaju promjene potvrdnog okvira, pošiljatelj bi bio potvrdni okvir na koji je korisnik kliknuo.

Parametar događaja sadrži objekt koji pohranjuje podatke o događaju koji se dogodio. To može uključivati ​​koordinate X i Y klika na gumb ili lokaciju miša u trenutku kada se događaj pokrene.

privatniponištitipanel1_DragDrop(pošiljatelj objekta, DragEventArgs e)
{
// Pristup svojstvima UI elementa koji je pokrenuo događaj
Panel panel = (Panel) pošiljatelj;
ploča. Omogućeno = lažno;
// Pristup podacima iz događaja
var eventData = e. Podaci;
}

Kako stvoriti i koristiti rukovaoce događajima

Prvo stvorite novi Aplikacija Winforms Forms u Visual Studiju. Ako ste tek počeli koristiti Windows Forms, ima ih mnogo klonirajte aplikacije koje možete izraditi dok učite Windows Forms.

Obrađivači događaja na platnu

Rukovatelje događaja možete generirati iz prozora svojstava na desnoj strani platna. Nakon što ste stvorili novu aplikaciju Windows Forms, stvorite rukovao događajima za element korisničkog sučelja potvrdnog okvira. To će se pokrenuti kada korisnik potvrdi ili poništi potvrdni okvir.

  1. Otvorite izbornik alatne kutije s lijeve strane Visual Studija. Povucite i ispustite element korisničkog sučelja potvrdnog okvira na platno.
  2. Označite potvrdni okvir na platnu.
  3. U prozoru svojstava na desnoj ploči kliknite na žutu ikonu munje da biste vidjeli popis događaja. Pomaknite se prema dolje do ProvjerenoPromijenjeno događaj.
  4. Kliknite na prazan prostor pored ProvjerenoPromijenjeno događaj. To će automatski generirati novu funkciju za obradu događaja. Funkcija će se kreirati u dijelu koji se nalazi iza koda aplikacije, u vašem .cs datoteka.
    privatniponištiticheckBox1_CheckedChanged(pošiljatelj objekta, EventArgs e)
    {
    // Vaš kod ovdje
    }

Rukovatelji događajima koji koriste kod iza

Izradite novu funkciju u kodu iza i povežite je s UI elementom na platnu.

  1. Na platnu kliknite i povucite gumb korisničkog sučelja. Prema zadanim postavkama, naziv novog gumba bit će "button1".
  2. Otvorena .cs Ako ste ostavili zadani naziv aplikacije Windows Form "Form1", ovo bi bilo Obrazac1.cs.
  3. Unutar klase Form1 stvorite novu funkciju. Provjerite slijedi li strukturu rukovatelja događajem i ima li dva parametra za pošiljatelja i objekt događaja.
    privatniponištitibutton1_MouseHoverEvent(pošiljatelj objekta, EventArgs e)
    {
    // Vaš kod ovdje
    }
  4. Povežite obrađivač događaja s događajem zalijetanja miša gumba1. To možete učiniti u konstruktoru.
    javnost Obrazac1()
    {
    InitializeComponent();
    ovaj.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Alternativno, također možete povezati funkciju s događajem pomoću prozora svojstava na platnu. Otvorite prozor svojstava i unesite naziv rukovatelja događaja u polje MouseHover. Ovo bi bilo button1_MouseHoverEvent.

Kako koristiti isti rukovatelj događaja u više događaja

Istu funkciju možete povezati s više događaja. U ovom slučaju, ako postoji jedna pozvana funkcija MouseEvent, možete dodati taj rukovatelj događajem i događaju prelaska miša i klika miša. To će tada obraditi oba događaja koristeći istu funkciju.

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

Korištenje događaja u aplikaciji Windows Form

Aplikacija Windows Forms omogućuje vam da povučete i ispustite različite elemente korisničkog sučelja kao što su gumbi, ploče ili tekstualni okviri na platno. Ovim elementima korisničkog sučelja možete dodati rukovaoce događajima na temelju različitih događaja koji se mogu dogoditi unutar aplikacije.

Ako gradite Windows aplikaciju, možda ćete također htjeti dodati slike ili grafiku kao dio svog korisničkog sučelja. Možete koristiti različite C# klase kao što su Graphic, Pen ili Color, koje će vam omogućiti da nacrtate različite vrste oblika na platnu.