Ինչպես են իրադարձությունները աշխատում Windows ձևի հավելվածում
Ավելացրեք UI-ի ինտերակտիվությունը ձեր Windows Form հավելվածին՝ իրադարձությունների ճկուն մշակմամբ:
Windows Forms-ը թույլ է տալիս տեսողականորեն ստեղծել աշխատասեղանի հավելվածներ՝ UI տարրերը կտավի վրա քաշելով: Այս UI տարրերը ներառում են վիդջեթներ, ինչպիսիք են կոճակները, վահանակները կամ վանդակները:
UI-ի յուրաքանչյուր տարր ստանում է որոշակի իրադարձություններ: Օրինակ, դուք կարող եք ունենալ սեղմումների իրադարձություն կոճակների համար, փոփոխված իրադարձություն վանդակների համար կամ քաշել և թողնել իրադարձություն վահանակների համար:
Իրադարձությունները օգտագործում են իրադարձությունների մշակիչներ կամ գործառույթներ, որոնք կատարվում են միայն այն ժամանակ, երբ տեղի է ունենում տվյալ իրադարձությունը:
Միջոցառումների տեսակները, որոնք օգտագործվում են UI-ի տարբեր տարրերի համար
UI-ի յուրաքանչյուր տարր ունի իրադարձությունների ցանկ: Կան բազմաթիվ դասընթացներ, որտեղ դուք կարող եք ծանոթանալ UX-ի կամ UI-ի կարևոր տեսությունների և պրակտիկայի մասին, որոնք կօգնեն ձեզ որոշել, թե ինչ UI տարրեր օգտագործել: Ահա UI տարրերի կողմից օգտագործվող իրադարձությունների մի քանի օրինակ:
Key Down, Key Up կամ Key Press Իրադարձություններ
UI տարրերը, որոնք թույլ են տալիս օգտվողին մուտքագրել տեքստ, օրինակ՝ տեքստային տուփ, կարող են օգտագործել այս իրադարձությունները: Այս իրադարձություններն ակտիվանում են ամեն անգամ, երբ օգտատերը սեղմում է ստեղնաշարի ստեղնը:
Սրանք կարող են օգտակար լինել այն սցենարներում, որտեղ դուք ունեք որոնման գործառույթ, և ձեզ հարկավոր է անընդհատ ստուգել, թե որն է տեքստային տուփի արժեքը:
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
TextBox textbox = (TextBox)sender;
string currentTextBoxValue = textbox.Text;
}
Բեռնել Իրադարձություն
Բեռնման իրադարձությունը տեղի է ունենում, երբ ձևը կամ UI տարրը ցուցադրվում է էկրանին: Դուք կարող եք օգտագործել այս իրադարձությունը, երբ ցանկանում եք, որ հատուկ ֆունկցիոնալությունը տեղի ունենա ձևի կամ հսկողության սկզբնավորման փուլում:
Սցենարներից մեկը, որտեղ սա կարող է օգտակար լինել, այն է, եթե ցանկանում եք ծրագրային կերպով կառավարիչներ ավելացնել ձևին, մինչ այն դեռ բեռնվում է:
private void Form1_Load(object sender, EventArgs e)
{
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.Popup += this.ToolTip1_Popup;
}
Գործիքների հուշում թռուցիկ իրադարձություն
Tooltip թռուցիկ իրադարձությունը տեղի է ունենում, երբ սավառնում եք հավելվածի միջերեսի տարրի վրա, և հայտնվում է գործիքի հուշում: Իրադարձությունների մշակիչին փոխանցված արգումենտները թույլ են տալիս մուտք գործել գործիքի հուշման վերաբերյալ տվյալներ, օրինակ՝ դրա տեքստը կամ չափը:
private void ToolTip1_Popup(object sender, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip)sender;
string tooltipText = tooltip.GetToolTip(button1);
var tooltipSize = e.ToolTipSize;
}
Քաշեք և թողեք իրադարձությունը
UI-ի շատ տարրեր կարող են օգտագործել քաշել և թողնել իրադարձությունը, ներառյալ վահանակը, կոճակը, նկարի տուփը, խմբային տուփը և այլն: Այս իրադարձությունը ակտիվանում է, երբ օգտատերը ֆայլը քաշում է միջերեսի տարր:
private void panel1_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
}
Mouse Over and Mouse Leave Events
Իրադարձության վրա մկնիկը գործարկվում է, երբ մկնիկը սավառնում է UI տարրի վրա: Այն բանից հետո, երբ մկնիկը հեռանում է և դադարում սավառնել տարրի վրայով, գործարկվում է մկնիկի հեռանալու իրադարձությունը:
private void button1_MouseLeave(object sender, EventArgs e)
{
Button button = (Button)sender;
var buttonText = button.Text;
}
Նշված է «Փոփոխված իրադարձություն»:
UI տարրերը, որոնք թույլ են տալիս օգտվողին ընտրել որևէ տարբերակ, կարող են օգտագործել նշված փոփոխված իրադարձությունը: Սա ներառում է ռադիո կոճակներ և վանդակներ: Ֆունկցիան գործարկվում է, երբ դուք նշում եք կամ հանում եք վանդակը:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkbox = (CheckBox)sender;
CheckState state = checkbox.CheckState;
bool isChecked = checkbox.Checked;
}
Փոփոխված արժեք, Ընտրված արժեքը փոխված կամ փոփոխված ամսաթիվ Իրադարձություններ
Արժեքը փոխված իրադարձությունը հասանելի է UI տարրերի վրա, որոնք թույլ են տալիս ընտրել արժեքը փոխելու տարբերակ: Սա ներառում է համակցված տուփեր, ամսաթիվ և ժամ ընտրողներ կամ օրացույց: Ֆունկցիան գործարկվում է, երբ օգտագործողը ընտրում է նոր արժեք:
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
MonthCalendar calendar = (MonthCalendar)sender;
var today = calendar.TodayDate;
var selectedDatesStart = e.Start;
var selectedDatesEnd = e.End;
}
Սեղմեք կոճակը իրադարձություն
Սեղմեք իրադարձությունների մշակման գործառույթը գործարկվում է, երբ սեղմում եք կոճակը:
private void button1_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
string textValue = button.Text;
}
Իրադարձությունների կառավարչի կառուցվածքը
Իրադարձությունների մշակիչներն ունեն երկու հիմնական պարամետր՝ ուղարկող և իրադարձության օբյեկտ:
Ուղարկողը հղում է միջերեսի տարրին կամ օբյեկտին, որը գործարկել է իրադարձությունը, օրինակ՝ կոճակը, վանդակը կամ վահանակը: Օրինակ, վանդակը փոխված իրադարձության դեպքում ուղարկողը կլինի այն վանդակը, որի վրա սեղմել է օգտատերը:
Իրադարձության պարամետրը պարունակում է օբյեկտ, որը պահում է տվյալներ տեղի ունեցած իրադարձության մասին: Սա կարող է ներառել կոճակի սեղմման X և Y կոորդինատները կամ մկնիկի գտնվելու վայրը իրադարձության գործարկման պահին:
private void panel1_DragDrop(object sender, DragEventArgs e)
{
// Access properties of the UI element that triggered the event
Panel panel = (Panel)sender;
panel.Enabled = false;
// Access data from the event
var eventData = e.Data;
}
Ինչպես ստեղծել և օգտագործել իրադարձությունների մշակիչներ
Նախ, Visual Studio-ում ստեղծեք նոր Winforms Forms հավելված: Եթե դուք նոր եք Windows Forms-ում, կան բազմաթիվ կլոնավորման հավելվածներ, որոնք կարող եք ստեղծել Windows Forms-ը սովորելիս:
Իրադարձությունների մշակողները կտավի վրա
Դուք կարող եք ստեղծել իրադարձությունների մշակիչներ կտավի աջ կողմում գտնվող հատկությունների պատուհանից: Windows Forms-ի նոր հավելված ստեղծելուց հետո ստեղծեք իրադարձությունների մշակիչ վանդակի UI տարրի համար: Սա կգործարկվի, երբ օգտատերը ստուգի կամ չեղարկի վանդակը:
Բացեք գործիքների տուփի ընտրացանկը Visual Studio-ի ձախ կողմում: Քաշեք և գցեք վանդակի UI տարրը կտավի վրա:
- Նշեք վանդակը կտավի վրա:
Աջ կողմի վահանակի հատկությունների պատուհանում կտտացրեք դեղին կայծակի պատկերակին՝ իրադարձությունների ցանկը դիտելու համար: Ոլորեք ներքև դեպի CheckedChanged միջոցառումը:
Սեղմեք CheckedChanged իրադարձության կողքին գտնվող դատարկ տարածության վրա: Սա ավտոմատ կերպով կստեղծի նոր գործառույթ՝ իրադարձությունը կարգավորելու համար: Ֆունկցիան կստեղծվի հավելվածի կոդի հետևի մասում՝ ձեր
.cs ֆայլում: private void checkBox1_CheckedChanged(object sender, EventArgs e) { // Your code here }
Իրադարձությունների կառավարիչներ, որոնք օգտագործում են հետևի ծածկագիրը
Ստեղծեք նոր գործառույթ ետևում գտնվող կոդի մեջ և այն կապեք կտավի միջերեսի տարրին:
- Կտավի վրա սեղմեք և քաշեք կոճակի UI տարրը: Լռելյայնորեն, նոր կոճակի անունը կլինի «button1»:
- Բացեք
.cs: Եթե դուք թողել եք «Form1»-ի «Windows Form» հավելվածի կանխադրված անունը, ապա սա կլինի Form1.cs: Form1 դասի ներսում ստեղծեք նոր ֆունկցիա։ Համոզվեք, որ այն հետևում է իրադարձությունների մշակողի կառուցվածքին և ունի երկու պարամետր ուղարկողի և իրադարձության օբյեկտի համար:
private void button1_MouseHoverEvent(object sender, EventArgs e) { // Your code here }
Միացրեք իրադարձությունների մշակիչը կոճակի 1-ի մկնիկի սավառնող իրադարձությանը: Դուք կարող եք դա անել կոնստրուկտորում:
public Form1() { InitializeComponent(); this.button1.MouseHover += button1_MouseHoverEvent; }
Որպես այլընտրանք, դուք կարող եք նաև կապել գործառույթը իրադարձության հետ՝ օգտագործելով կտավի վրա գտնվող հատկությունների պատուհանը: Բացեք հատկությունների պատուհանը և մուտքագրեք ձեր իրադարձությունների մշակողի անունը MouseHover դաշտում: Սա կլինի button1_MouseHoverEvent:
Ինչպես օգտագործել միևնույն իրադարձությունների մշակիչը բազմաթիվ իրադարձությունների ընթացքում
Դուք կարող եք նույն գործառույթը կապել բազմաթիվ իրադարձությունների հետ: Այս դեպքում, եթե կար մեկ գործառույթ, որը կոչվում է MouseEvent, դուք կարող եք ավելացնել այդ իրադարձությունների մշակիչը և՛ մկնիկի սավառնման, և՛ մկնիկի սեղմման իրադարձությանը: Այնուհետև սա կկառավարի երկու իրադարձությունները՝ օգտագործելով նույն գործառույթը:
this.button1.MouseHover += button1_MouseEvent;
this.button1.MouseClick += button1_MouseEvent;
Օգտագործելով իրադարձությունները Windows ձևի հավելվածում
Windows Forms հավելվածը թույլ է տալիս քաշել և թողնել տարբեր UI տարրեր, ինչպիսիք են կոճակները, վահանակները կամ տեքստային տուփերը կտավի վրա: Դուք կարող եք իրադարձությունների մշակիչներ ավելացնել այս UI տարրերին՝ հիմնվելով հավելվածի ներսում տեղի ունեցող տարբեր իրադարձությունների վրա:
Եթե դուք Windows-ի հավելված եք կառուցում, կարող եք նաև պատկերներ կամ գրաֆիկա ավելացնել որպես ձեր օգտատիրոջ միջերեսի մաս: Կարող եք օգտագործել տարբեր C# դասեր, ինչպիսիք են Graphic, Pen կամ Color դասերը, որոնք թույլ կտան կտավի վրա նկարել տարբեր տեսակի ձևեր: