A Windows Forms lehetővé teszi az asztali alkalmazások vizuális létrehozását a felhasználói felület elemeinek vászonra húzásával. Ezek a felhasználói felület elemei widgeteket, például gombokat, paneleket vagy jelölőnégyzeteket tartalmaznak.

Minden UI elem bizonyos eseményeket kap. Lehet például kattintási esemény a gombokhoz, megváltozott esemény a jelölőnégyzetekhez, vagy drag and drop esemény a panelekhez.

Az események eseménykezelőket vagy függvényeket használnak, amelyek csak akkor futnak le, amikor az adott esemény bekövetkezik.

A különböző felhasználói felület elemeihez használt események típusai

Minden felhasználói felület elemhez tartozik egy eseménylista. Sok tanfolyam van, ahol megteheti megismerkedhet a fontos UX vagy UI elméletekkel és gyakorlatokkal segít eldönteni, hogy milyen UI-elemeket használjon. Íme néhány példa a felhasználói felület elemei által használt eseményekre.

Billentyű le, Billentyű fel vagy Billentyűnyomás események

Az olyan UI-elemek, amelyek lehetővé teszik a felhasználó számára szövegbevitelt, például egy szövegmező, használhatják ezeket az eseményeket. Ezek az események minden alkalommal aktiválódnak, amikor a felhasználó megnyom egy billentyűt a billentyűzetén.

instagram viewer

Ezek hasznosak lehetnek olyan esetekben, amikor rendelkezik keresési funkcióval, és előfordulhat, hogy folyamatosan ellenőriznie kell a szövegmező értékét.

magánürestextBox1_KeyUp(objektum küldő, KeyEventArgs e)
{
TextBox textbox = (TextBox) feladó;
string currentTextBoxValue = szövegdoboz. Szöveg;
}

Esemény betöltése

A betöltési esemény akkor következik be, amikor az űrlap vagy egy felhasználói felület elem megjelenik a képernyőn. Ezt az eseményt akkor használhatja, ha azt szeretné, hogy bizonyos funkciók megjelenjenek az űrlap vagy vezérlőelem inicializálási szakaszában.

Az egyik forgatókönyv, ahol ez hasznos lehet, ha programozottan szeretne vezérlőket hozzáadni az űrlaphoz, miközben az még betöltés alatt áll.

magánüresForm1_Load(objektum küldő, EventArgs e)
{
ToolTip toolTip1 = új ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = igaz;
toolTip1.SetToolTip (this.button1, "Saját gomb 1");
toolTip1.Popup += ez.ToolTip1_Popup;
}

Az eszköztipp felugró esemény akkor következik be, amikor az egérmutatót az alkalmazás felhasználói felületeleme fölé viszi, és megjelenik egy elemleírás. Az eseménykezelőbe átadott argumentumok lehetővé teszik az eszköztipp adatainak, például szövegének vagy méretének elérését.

magánüresToolTip1_Popup(objektum küldő, PopupEventArgs e)
{
ToolTip tooltip = (Eszköztipp) küldő;
string tooltipText = tooltip. GetToolTip (button1);
var tooltipSize = e. ToolTipSize;
}

Drag and Drop esemény

Számos felhasználói felület elem használhatja a drag and drop eseményt, beleértve a panelt, gombot, képmezőt, csoportdobozt és egyebeket. Ez az esemény akkor aktiválódik, amikor a felhasználó áthúz egy fájlt a felhasználói felület elemébe.

magánürespanel1_DragDrop(objektum küldő, DragEventArgs e)
{
string[] files = (karakterlánc[])e. Adat. GetData (DataFormats. FileDrop, hamis);
}

Egér fölé és egér elhagyása események

Az egeret az esemény fölé viszi, amikor az egeret a felhasználói felület eleme fölé viszi. Amint az egér elhagyja az elemet, és már nem mozog az elem felett, az egér elhagyása esemény aktiválódik.

magánüresbutton1_MouseLeave(objektum küldő, EventArgs e)
{
Gomb gomb = (Gomb) feladó;
var buttonText = gomb. Szöveg;
}

Megváltozott esemény bejelölve

A felhasználói felület elemei, amelyek lehetővé teszik a felhasználó számára egy opció kiválasztását, használhatják a bejelölt módosított eseményt. Ide tartoznak a rádiógombok és a jelölőnégyzetek. A funkció akkor aktiválódik, amikor bejelöli vagy törölje a jelölőnégyzetet.

magánürescheckBox1_CheckedChanged(objektum küldő, EventArgs e)
{
CheckBox checkbox = (CheckBox) feladó;
CheckState állapot = jelölőnégyzet. CheckState;
bool isChecked = jelölőnégyzet. Ellenőrizve;
}

Érték módosult, Kijelölt érték módosult vagy Változás dátuma események

Az érték módosult esemény olyan UI-elemeken érhető el, amelyek lehetővé teszik az érték módosításának beállítását. Ide tartoznak a kombinált mezők, a dátum- és időválasztók vagy a naptár. A funkció akkor aktiválódik, amikor a felhasználó új értéket választ ki.

magánüresmonthCalendar1_DateChanged(objektum küldője, DateRangeEventArgs e)
{
MonthCalendar naptár = (MonthCalendar) feladó;
var ma = naptár. TodayDate;
var selectedDatesStart = e. Rajt;
var selectedDatesEnd = e. Vége;
}

Kattintson az Esemény gombra

A kattintási eseménykezelő funkció akkor aktiválódik, amikor egy gombra kattint.

magánüresbutton1_Kattintson(objektum küldő, EventArgs e)
{
Gomb gomb = (Gomb) feladó;
string textValue = gomb. Szöveg;
}

Az eseménykezelő felépítése

Az eseménykezelőknek két elsődleges paramétere van: a küldő és egy eseményobjektum.

A feladó hivatkozás az eseményt kiváltó felhasználói felület elemre vagy objektumra, például gombra, jelölőnégyzetre vagy panelre. Például egy jelölőnégyzet megváltozott esemény esetén a feladó az a jelölőnégyzet, amelyre a felhasználó rákattintott.

Az esemény paraméter egy objektumot tartalmaz, amely adatokat tárol a megtörtént eseményről. Ez magában foglalhatja egy gombkattintás X és Y koordinátáit, vagy az egér helyzetét az esemény aktiválásának pillanatában.

magánürespanel1_DragDrop(objektum küldő, DragEventArgs e)
{
// Hozzáférés az eseményt kiváltó felhasználói felület elem tulajdonságaihoz
Panel panel = (Panel) feladó;
panel. Engedélyezve = hamis;
// Az esemény adatainak elérése
var eventData = e. Adat;
}

Eseménykezelők létrehozása és használata

Először hozzon létre egy újat Winforms Forms alkalmazás a Visual Studio-ban. Ha még nem ismeri a Windows Forms alkalmazást, sok ilyen van klónozhatja azokat az alkalmazásokat, amelyeket a Windows Forms tanulása közben készíthet.

Eseménykezelők a vásznon

Eseménykezelőket generálhat a vászon jobb oldalán található tulajdonságablakból. Miután létrehozott egy új Windows Forms alkalmazást, hozzon létre egy eseménykezelőt a jelölőnégyzetes felhasználói felület elemhez. Ez akkor aktiválódik, amikor a felhasználó bejelöli vagy törli a jelölőnégyzetet.

  1. Nyissa meg az eszköztár menüt a Visual Studio bal oldalán. Húzzon egy jelölőnégyzetet a felhasználói felület elemére a vászonra.
  2. Jelölje ki a jelölőnégyzetet a vásznon.
  3. A jobb oldali panel tulajdonságablakban kattintson a sárga villám ikonra az események listájának megtekintéséhez. Görgessen le a BejelölveMódosítva esemény.
  4. Kattintson a melletti üres helyre BejelölveMódosítva esemény. Ez automatikusan létrehoz egy új funkciót az esemény kezelésére. A funkció az alkalmazás kód mögötti részében jön létre, az Ön alkalmazásában .cs fájl.
    magánürescheckBox1_CheckedChanged(objektum küldő, EventArgs e)
    {
    // Itt a kódod
    }

Eseménykezelők a mögöttes kód használatával

Hozzon létre egy új függvényt a mögötte lévő kódban, és kapcsolja össze a vásznon lévő UI elemmel.

  1. A vásznon kattintson és húzza a gomb kezelőfelületi elemét. Alapértelmezés szerint az új gomb neve "button1".
  2. Nyisd ki .cs. Ha meghagyta az alapértelmezett Windows Form-alkalmazás nevét, a „Form1”, ez lesz Form1.cs.
  3. A Form1 osztályon belül hozzon létre egy új függvényt. Győződjön meg arról, hogy az eseménykezelő szerkezetét követi, és két paraméterrel rendelkezik a küldő és az eseményobjektum számára.
    magánüresbutton1_MouseHoverEvent(objektum küldő, EventArgs e)
    {
    // Itt a kódod
    }
  4. Kapcsolja össze az eseménykezelőt a button1 egérmutató eseményével. Ezt megteheti a konstruktorban.
    nyilvános Form1()
    {
    InitializeComponent();
    ez.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Alternatív megoldásként a függvényt a vásznon lévő tulajdonságablakban is összekapcsolhatja az eseménnyel. Nyissa meg a tulajdonságok ablakát, és írja be az eseménykezelő nevét a MouseHover mezőbe. Ez lenne button1_MouseHoverEvent.

Hogyan használjuk ugyanazt az eseménykezelőt több eseményhez

Ugyanazt a funkciót több eseményhez is kapcsolhatja. Ebben az esetben, ha egyetlen függvény lenne hívva MouseEvent, hozzáadhatja ezt az eseménykezelőt az egérmutató és az egérkattintás eseményéhez is. Ez ezután mindkét eseményt ugyanazzal a funkcióval kezeli.

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

Események használata Windows űrlapalkalmazásban

A Windows Forms alkalmazás lehetővé teszi különféle felhasználói felületelemek, például gombok, panelek vagy szövegdobozok húzását a vászonra. Eseménykezelőket adhat hozzá ezekhez a felhasználói felületelemekhez, az alkalmazáson belül előforduló különböző események alapján.

Ha Windows-alkalmazást készít, érdemes lehet képeket vagy grafikákat is hozzáadni a felhasználói felülethez. Különféle C# osztályokat használhat, például a Graphic, Pen vagy Color osztályt, amelyek lehetővé teszik különböző típusú formák rajzolását a vászonra.