Windows Forms ļauj vizuāli izveidot darbvirsmas lietojumprogrammas, velkot lietotāja interfeisa elementus uz audekla. Šie lietotāja interfeisa elementi ietver logrīkus, piemēram, pogas, paneļus vai izvēles rūtiņas.

Katrs lietotāja interfeisa elements saņem noteiktus notikumus. Piemēram, var būt noklikšķināšanas notikums pogām, mainīts notikums izvēles rūtiņām vai vilkšanas un nomešanas notikums paneļiem.

Notikumi izmanto notikumu apdarinātājus vai funkcijas, kas tiek izpildītas tikai tad, kad notiek konkrētais notikums.

Dažādiem lietotāja interfeisa elementiem izmantoto notikumu veidi

Katram lietotāja interfeisa elementam ir notikumu saraksts. Ir daudz kursu, kur jūs varat uzziniet par svarīgām UX vai UI teorijām un praksēm lai palīdzētu jums izlemt, kādus lietotāja interfeisa elementus izmantot. Šeit ir daži notikumu piemēri, ko izmanto UI elementi.

Taustiņu uz leju, taustiņu uz augšu vai taustiņu nospiešanas notikumi

UI elementi, kas ļauj lietotājam ievadīt tekstu, piemēram, tekstlodziņš, var izmantot šos notikumus. Šie notikumi tiek aktivizēti katru reizi, kad lietotājs nospiež taustiņu uz tastatūras.

Tie var būt noderīgi gadījumos, kad jums ir meklēšanas funkcionalitāte, un jums, iespējams, būs pastāvīgi jāpārbauda tekstlodziņa vērtība.

PrivātsnederīgstextBox1_KeyUp(objekta sūtītājs, KeyEventArgs e)
{
TextBox textbox = (TextBox) sūtītājs;
string currentTextBoxValue = tekstlodziņš. Teksts;
}

Ielādēt notikumu

Ielādes notikums notiek, kad forma vai lietotāja interfeisa elements tiek renderēts ekrānā. Varat izmantot šo notikumu, ja vēlaties, lai veidlapas vai vadīklas inicializācijas stadijā tiktu izmantota noteikta funkcionalitāte.

Viens no gadījumiem, kad tas var būt noderīgi, ir, ja vēlaties programmatiski pievienot vadīklas veidlapai, kamēr tā joprojām tiek ielādēta.

PrivātsnederīgsForm1_Load(objekta sūtītājs, EventArgs e)
{
ToolTip toolTip1 = jauns Rīka padoms();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = taisnība;
toolTip1.SetToolTip (this.button1, "Mana poga 1");
toolTip1.Unirstošais logs += šis.ToolTip1_Unirstošais logs;
}

Rīka padoma uznirstošais notikums notiek, kad virzāt kursoru virs lietojumprogrammas lietotāja interfeisa elementa, un tiek parādīts rīka padoms. Argumenti, kas nodoti notikumu apstrādātājam, ļauj piekļūt datiem par rīkpadomu, piemēram, tā tekstam vai lielumam.

PrivātsnederīgsRīka padoms1_Uznirstošais logs(objekta sūtītājs, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) sūtītājs;
string tooltipText = rīka padoms. GetToolTip (poga1);
var tooltipSize = e. ToolTipSize;
}

Velciet un nometiet notikumu

Daudzi lietotāja interfeisa elementi var izmantot vilkšanas un nomešanas notikumu, tostarp paneli, pogu, attēla lodziņu, grupas lodziņu un citus. Šis notikums tiek aktivizēts, kad lietotājs ievelk failu lietotāja interfeisa elementā.

Privātsnederīgspanelis1_DragDrop(objekta sūtītājs, DragEventArgs e)
{
string[] faili = (string[])e. Dati. GetData (DataFormats. FileDrop, viltus);
}

Notikumi novieto kursoru un atstāj peli

Kursors virs notikuma tiek aktivizēts, kad pele tiek virzīta virs lietotāja interfeisa elementa. Kad pele pamet un pārstāj virzīt kursoru virs elementa, tiek aktivizēts peles aiziešanas notikums.

Privātsnederīgsbutton1_Mouse Leave(objekta sūtītājs, EventArgs e)
{
Pogas poga = (Pogas) sūtītājs;
var pogaTeksts = poga. Teksts;
}

Atzīmēts Mainīts notikums

UI elementi, kas ļauj lietotājam atlasīt opciju, var izmantot atzīmēto mainīto notikumu. Tas ietver radio pogas un izvēles rūtiņas. Funkcija tiek aktivizēta, atzīmējot vai noņemot atzīmi no izvēles rūtiņas.

Privātsnederīgscheckbox1_CheckedChanged(objekta sūtītājs, EventArgs e)
{
Izvēles rūtiņa = (CheckBox) sūtītājs;
CheckState status = izvēles rūtiņa. CheckState;
bool isChecked = izvēles rūtiņa. Pārbaudīts;
}

Notikumi mainīta vērtība, atlasītā vērtība mainīta vai mainīts datums

Vērtības maiņas notikums ir pieejams lietotāja saskarnes elementos, kas ļauj atlasīt opciju vērtības mainīšanai. Tas ietver kombinētos lodziņus, datuma un laika atlasītājus vai kalendāru. Funkcija tiek aktivizēta, kad lietotājs izvēlas jaunu vērtību.

PrivātsnederīgsmonthCalendar1_DateChanged(objekta sūtītājs, DateRangeEventArgs e)
{
MonthCalendar kalendārs = (MonthCalendar) sūtītājs;
var šodien = kalendārs. ŠodienDatums;
var selectDatesStart = e. Sākt;
var atlasītsDatumiBeigas = e. Beigas;
}

Noklikšķiniet uz pogas Notikums

Klikšķu notikumu apstrādātāja funkcija tiek aktivizēta, noklikšķinot uz pogas.

Privātsnederīgspoga1_Noklikšķiniet(objekta sūtītājs, EventArgs e)
{
Pogas poga = (Pogas) sūtītājs;
virkne textValue = poga. Teksts;
}

Notikumu apstrādātāja struktūra

Notikumu apstrādātājiem ir divi galvenie parametri: sūtītājs un notikuma objekts.

Sūtītājs ir atsauce uz lietotāja interfeisa elementu vai objektu, kas aktivizējis notikumu, piemēram, pogu, izvēles rūtiņu vai paneli. Piemēram, ja izvēles rūtiņa ir mainīta, sūtītājs būtu izvēles rūtiņa, uz kuras lietotājs ir noklikšķinājis.

Notikuma parametrs satur objektu, kas glabā datus par notikušo notikumu. Tas var ietvert pogas klikšķa X un Y koordinātas vai peles atrašanās vietu notikuma aktivizēšanas brīdī.

Privātsnederīgspanelis1_DragDrop(objekta sūtītājs, DragEventArgs e)
{
// Piekļūstiet tā lietotāja interfeisa elementa rekvizītiem, kas aktivizēja notikumu
Paneļa panelis = (Paneļa) sūtītājs;
panelis. Iespējots = viltus;
// Piekļūstiet notikuma datiem
var notikumuDati = e. Dati;
}

Kā izveidot un lietot notikumu apdarinātājus

Pirmkārt, izveidojiet jaunu Programma Winforms Forms programmā Visual Studio. Ja esat iesācējs Windows veidlapās, to ir daudz klonējiet programmas, kuras varat izveidot, apgūstot Windows veidlapas.

Pasākumu apstrādātāji uz audekla

Varat ģenerēt notikumu apdarinātājus, izmantojot rekvizītu logu audekla labajā pusē. Kad esat izveidojis jaunu Windows Forms lietojumprogrammu, izveidojiet notikumu apdarinātāju izvēles rūtiņas UI elementam. Tas tiks aktivizēts, kad lietotājs atzīmēs izvēles rūtiņu vai noņem atzīmi no tās.

  1. Visual Studio kreisajā pusē atveriet rīklodziņa izvēlni. Velciet un nometiet izvēles rūtiņas UI elementu uz audekla.
  2. Iezīmējiet izvēles rūtiņu uz audekla.
  3. Rekvizītu logā labās puses panelī noklikšķiniet uz dzeltenās zibens ikonas, lai skatītu notikumu sarakstu. Ritiniet uz leju līdz PārbaudītsMainīts notikumu.
  4. Noklikšķiniet uz tukšās vietas blakus PārbaudītsMainīts notikumu. Tas automātiski ģenerēs jaunu funkciju, lai apstrādātu notikumu. Funkcija tiks izveidota jūsu lietojumprogrammas koda daļā, kas atrodas aiz koda .cs fails.
    Privātsnederīgscheckbox1_CheckedChanged(objekta sūtītājs, EventArgs e)
    {
    // Tavs kods šeit
    }

Notikumu apstrādātāji, izmantojot aizmugures kodu

Aiz esošajā kodā izveidojiet jaunu funkciju un saistiet to ar UI elementu uz audekla.

  1. Uz audekla noklikšķiniet uz pogas UI elementa un velciet to. Pēc noklusējuma jaunās pogas nosaukums būs "poga1".
  2. Atvērt .cs. Ja esat atstājis noklusējuma Windows Form lietojumprogrammas nosaukumu Form1, tas būtu Veidlapa1.cs.
  3. Form1 klasē izveidojiet jaunu funkciju. Pārliecinieties, vai tas atbilst notikumu apstrādātāja struktūrai un tam ir divi parametri sūtītājam un notikuma objektam.
    Privātsnederīgsbutton1_MouseHoverEvent(objekta sūtītājs, EventArgs e)
    {
    // Tavs kods šeit
    }
  4. Saistiet notikumu apdarinātāju ar pogas 1 peles kursora novietošanas notikumu. To var izdarīt konstruktorā.
    publiski Form1()
    {
    InitializeComponent();
    šis.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Varat arī saistīt funkciju ar notikumu, izmantojot rekvizītu logu uz audekla. Atveriet rekvizītu logu un laukā MouseHover ievadiet notikumu apstrādātāja nosaukumu. Tas būtu button1_MouseHoverEvent.

Kā izmantot vienu un to pašu notikumu apdarinātāju vairākos pasākumos

Varat saistīt vienu un to pašu funkciju ar vairākiem notikumiem. Šajā gadījumā, ja tiek izsaukta viena funkcija MouseEvent, varat pievienot šo notikumu apdarinātāju gan peles kursora novietošanas, gan peles klikšķa notikumam. Pēc tam tiks apstrādāti abi notikumi, izmantojot vienu un to pašu funkciju.

šis.button1.MouseHover += button1_MouseEvent;
šis.button1.MouseClick += button1_MouseEvent;

Notikumu izmantošana Windows veidlapas lietojumprogrammā

Programma Windows Forms ļauj uz audekla vilkt un nomest dažādus lietotāja interfeisa elementus, piemēram, pogas, paneļus vai tekstlodziņus. Šiem lietotāja interfeisa elementiem varat pievienot notikumu apdarinātājus, pamatojoties uz dažādiem notikumiem, kas var rasties lietojumprogrammā.

Ja veidojat Windows lietojumprogrammu, iespējams, vēlēsities arī pievienot attēlus vai grafiku kā daļu no lietotāja saskarnes. Varat izmantot dažādas C# klases, piemēram, Graphic, Pen vai Color klasi, kas ļaus uz audekla uzzīmēt dažāda veida formas.