„Windows Forms“ leidžia kurti darbalaukio programas vizualiai, vilkdami vartotojo sąsajos elementus ant drobės. Šie vartotojo sąsajos elementai apima valdiklius, pvz., mygtukus, skydelius arba žymimuosius laukelius.

Kiekvienas vartotojo sąsajos elementas gauna tam tikrus įvykius. Pavyzdžiui, galite turėti mygtukų paspaudimo įvykį, žymimųjų laukelių pakeistą įvykį arba skydelių nuvilkimo įvykį.

Įvykiai naudoja įvykių tvarkykles arba funkcijas, kurios vykdomos tik įvykus tam tikram įvykiui.

Įvairių vartotojo sąsajos elementų įvykių tipai

Kiekvienas vartotojo sąsajos elementas turi įvykių sąrašą. Yra daug kursų, kur galite sužinoti apie svarbias UX ar UI teorijas ir praktikas padėti nuspręsti, kokius vartotojo sąsajos elementus naudoti. Štai keli NS elementų naudojamų įvykių pavyzdžiai.

Mygtukų žemyn, klavišų aukštyn arba klavišų paspaudimo įvykiai

UI elementai, leidžiantys vartotojui įvesti tekstą, pvz., teksto laukelis, gali naudoti šiuos įvykius. Šie įvykiai suaktyvinami kiekvieną kartą, kai vartotojas paspaudžia klaviatūros klavišą.

instagram viewer

Tai gali būti naudinga tais atvejais, kai turite paieškos funkciją, ir jums gali tekti nuolat tikrinti, kokia yra teksto laukelio reikšmė.

privatustuštumatextBox1_KeyUp(objekto siuntėjas, KeyEventArgs e)
{
TextBox textbox = (TextBox) siuntėjas;
string currentTextBoxValue = teksto laukelis. Tekstas;
}

Įkelti įvykį

Įkėlimo įvykis įvyksta, kai forma arba vartotojo sąsajos elementas pateikiamas ekrane. Šį įvykį galite naudoti, kai norite, kad formos ar valdiklio inicijavimo etape būtų įdiegtos konkrečios funkcijos.

Vienas iš scenarijų, kai tai gali būti naudinga, jei norite programiškai pridėti valdiklius į formą, kol ji vis dar įkeliama.

privatustuštumaForm1_Load(objekto siuntėjas, EventArgs e)
{
ToolTip toolTip1 = naujas Įrankio patarimas();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = tiesa;
toolTip1.SetToolTip (this.button1, "Mano mygtukas 1");
toolTip1.Iššokantis langas += tai.ToolTip1_Iššokantis langas;
}

Patarimo iššokantis įvykis įvyksta, kai užvedate pelės žymeklį virš programos vartotojo sąsajos elemento ir pasirodo patarimas. Į įvykių tvarkytuvą perduodami argumentai leidžia pasiekti patarimo duomenis, pvz., tekstą ar dydį.

privatustuštumaToolTip1_Popup(objekto siuntėjas, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) siuntėjas;
string tooltipText = patarimas. GetToolTip (button1);
var tooltipSize = e. ToolTipSize;
}

„Drag and Drop“ įvykis

Daugelis vartotojo sąsajos elementų gali naudoti vilkimo ir nuleidimo įvykį, įskaitant skydelį, mygtuką, paveikslėlio laukelį, grupės laukelį ir kt. Šis įvykis suaktyvinamas, kai vartotojas nutempia failą į vartotojo sąsajos elementą.

privatustuštumapanel1_DragDrop(objekto siuntėjas, DragEventArgs e)
{
string[] failai = (string[])e. Duomenys. GetData (DataFormats. FileDrop, klaidinga);
}

Užveskite pelę ir palikite įvykius

Užvedus pelės žymeklį virš įvykio, suaktyvinama, kai pelė užvedama virš vartotojo sąsajos elemento. Kai pelė išeina ir nustoja slysti virš elemento, suaktyvinamas pelės palikimo įvykis.

privatustuštumabutton1_MouseLeave(objekto siuntėjas, EventArgs e)
{
Mygtuko mygtukas = (mygtuko) siuntėjas;
var buttonText = mygtukas. Tekstas;
}

Pažymėtas pakeistas įvykis

UI elementai, leidžiantys vartotojui pasirinkti parinktį, gali naudoti pažymėtą pakeistą įvykį. Tai apima radijo mygtukus ir žymimuosius laukelius. Funkcija suaktyvinama, kai pažymėsite arba panaikinsite žymimąjį laukelį.

privatustuštumacheckBox1_CheckedChanged(objekto siuntėjas, EventArgs e)
{
Žymimasis langelis = (CheckBox) siuntėjas;
CheckState būsena = žymės langelis. CheckState;
bool isChecked = žymės langelis. Patikrintas;
}

Keitės vertės, pakeistos pasirinktos vertės arba pakeistos datos įvykiai

Reikšmės pakeitimo įvykis pasiekiamas vartotojo sąsajos elementuose, kurie leidžia pasirinkti vertės keitimo parinktį. Tai apima kombinuotus langelius, datos ir laiko rinkiklius arba kalendorių. Funkcija suaktyvinama, kai vartotojas pasirenka naują reikšmę.

privatustuštumamonthCalendar1_DateChanged(objekto siuntėjas, DateRangeEventArgs e)
{
MonthCalendar kalendorius = (MonthCalendar) siuntėjas;
var šiandien = kalendorius. ŠiandienData;
var pasirinktosDatosPradžia = e. Pradėti;
var pasirinktosDatosPabaiga = e. Pabaiga;
}

Spustelėkite mygtuką Įvykis

Spustelėjus mygtuką, suaktyvinama paspaudimo įvykių tvarkyklės funkcija.

privatustuštumamygtukas1_Spustelėkite(objekto siuntėjas, EventArgs e)
{
Mygtuko mygtukas = (mygtuko) siuntėjas;
eilutė textValue = mygtukas. Tekstas;
}

Renginių vedėjo struktūra

Įvykių tvarkyklės turi du pagrindinius parametrus: siuntėją ir įvykio objektą.

Siuntėjas yra nuoroda į NS elementą arba objektą, kuris suaktyvino įvykį, pvz., mygtuką, žymimąjį laukelį arba skydelį. Pavyzdžiui, žymimajame laukelyje pakeistame įvykyje siuntėjas būtų žymės langelis, kurį vartotojas spustelėjo.

Įvykio parametre yra objektas, kuriame saugomi duomenys apie įvykusį įvykį. Tai gali apimti mygtuko paspaudimo X ir Y koordinates arba pelės vietą įvykio suaktyvinimo metu.

privatustuštumapanel1_DragDrop(objekto siuntėjas, DragEventArgs e)
{
// Pasiekite įvykį suaktyvinusio vartotojo sąsajos elemento ypatybes
Panel panel = (Skylos) siuntėjas;
skydelis. Įjungta = klaidinga;
// Prieiga prie įvykio duomenų
var įvykio duomenys = e. Duomenys;
}

Kaip sukurti ir naudoti įvykių tvarkykles

Pirmiausia sukurkite naują „Winforms Forms“ programa „Visual Studio“.. Jei pirmą kartą naudojate „Windows Forms“, jų yra daug klonuoti programas, kurias galite kurti mokydamiesi „Windows Forms“..

Renginių vedėjai ant drobės

Įvykių tvarkykles galite generuoti ypatybių lange, esančiame dešinėje drobės pusėje. Sukūrę naują „Windows Forms“ programą, sukurkite žymimojo laukelio UI elemento įvykių tvarkyklę. Tai suaktyvins, kai vartotojas pažymės arba panaikins žymės langelį.

  1. Atidarykite įrankių rinkinio meniu „Visual Studio“ kairėje. Nuvilkite žymimąjį laukelio UI elementą ant drobės.
  2. Pažymėkite žymimąjį laukelį ant drobės.
  3. Dešiniajame skydelyje esančiame ypatybių lange spustelėkite geltono žaibo piktogramą, kad peržiūrėtumėte įvykių sąrašą. Slinkite žemyn iki PažymėtaPakeista įvykis.
  4. Spustelėkite tuščią vietą šalia PažymėtaPakeista įvykis. Tai automatiškai sugeneruos naują funkciją įvykiui valdyti. Funkcija bus sukurta jūsų programos dalyje, esančioje už kodo .cs failą.
    privatustuštumacheckBox1_CheckedChanged(objekto siuntėjas, EventArgs e)
    {
    // Čia jūsų kodas
    }

Įvykių tvarkytojai, naudojantys kodą

Užpakaliniame kode sukurkite naują funkciją ir susiekite ją su UI elementu drobėje.

  1. Drobėje spustelėkite ir vilkite mygtuko UI elementą. Pagal numatytuosius nustatymus naujo mygtuko pavadinimas bus „button1“.
  2. Atviras .cs. Jei palikote numatytąjį „Windows Form“ programos pavadinimą „Form1“, tai būtų Forma1.cs.
  3. Form1 klasėje sukurkite naują funkciją. Įsitikinkite, kad jis atitinka įvykių tvarkyklės struktūrą ir turi du parametrus siuntėjui ir įvykio objektui.
    privatustuštumabutton1_MouseHoverEvent(objekto siuntėjas, EventArgs e)
    {
    // Čia jūsų kodas
    }
  4. Susiekite įvykių tvarkyklę su 1 mygtuko pelės žymeklio užvedimo įvykiu. Tai galite padaryti konstruktoriuje.
    viešas 1 forma ()
    {
    InitializeComponent();
    tai.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Arba taip pat galite susieti funkciją su įvykiu naudodami ypatybių langą drobėje. Atidarykite ypatybių langą ir lauke MouseHover įveskite įvykių tvarkyklės pavadinimą. Tai būtų button1_MouseHoverEvent.

Kaip naudoti tą pačią įvykių tvarkyklę keliems įvykiams

Tą pačią funkciją galite susieti su keliais įvykiais. Šiuo atveju, jei būtų vadinama viena funkcija MouseEvent, galite pridėti tą įvykių tvarkyklę prie pelės žymeklio ir pelės paspaudimo įvykio. Tada abu įvykiai bus tvarkomi naudojant tą pačią funkciją.

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

Įvykių naudojimas „Windows“ formos programoje

„Windows Forms“ programa leidžia ant drobės nuvilkti įvairius vartotojo sąsajos elementus, pvz., mygtukus, skydelius ar teksto laukelius. Prie šių vartotojo sąsajos elementų galite pridėti įvykių tvarkyklių, atsižvelgdami į įvairius įvykius, kurie gali įvykti programoje.

Jei kuriate „Windows“ programą, galbūt norėsite pridėti vaizdų ar grafikos kaip vartotojo sąsajos dalį. Galite naudoti įvairias C# klases, tokias kaip Graphic, Pen arba Color klasė, kuri leis ant drobės piešti įvairių tipų figūras.