Виндовс Формс вам омогућава да креирате десктоп апликације визуелно, превлачењем елемената корисничког интерфејса на платно. Ови елементи корисничког интерфејса укључују виџете као што су дугмад, панели или поља за потврду.

Сваки елемент корисничког интерфејса прима одређене догађаје. На пример, можете имати догађај клика за дугмад, промењен догађај за поља за потврду или догађај превлачења и испуштања за панеле.

Догађаји користе руковаоце догађајима или функције, које се извршавају само када дође до тог одређеног догађаја.

Типови догађаја који се користе за различите елементе корисничког интерфејса

Сваки елемент корисничког интерфејса има листу догађаја. Постоји много курсева где можете научите о важним теоријама и праксама УКС или УИ да вам помогне да одлучите које елементе корисничког интерфејса ћете користити. Ево неколико примера догађаја које користе елементи корисничког интерфејса.

Кеи Довн, Кеи Уп или Кеи Пресс Евентс

Елементи корисничког интерфејса који омогућавају кориснику да унесе текст, као што је оквир за текст, могу да користе ове догађаје. Ови догађаји се покрећу сваки пут када корисник притисне тастер на својој тастатури.

Ово може бити корисно у сценаријима у којима имате функцију претраживања и можда ћете морати стално да проверавате која је вредност оквира за текст.

приватнипразнинатектБок1_КеиУп(пошиљалац објекта, КеиЕвентАргс е)
{
ТектБок тектбок = (ТектБок) пошиљалац;
стринг цуррентТектБокВалуе = текстуални оквир. Текст;
}

Учитавање догађаја

Догађај учитавања се јавља када се образац или УИ елемент прикаже на екрану. Овај догађај можете користити када желите да се одређена функционалност појави у фази иницијализације обрасца или контроле.

Један сценарио у којем ово може бити корисно је ако желите да програмски додате контроле у ​​образац док се још учитава.

приватнипразнинаФорм1_Лоад(пошиљалац објекта, ЕвентАргс е)
{
ТоолТип тоолТип1 = Нова ТоолТип();
тоолТип1.АутоПопДелаи = 5000;
тоолТип1.ИнитиалДелаи = 1000;
тоолТип1.РесховДелаи = 500;
тоолТип1.СховАлваис = истинито;
тоолТип1.СетТоолТип (овај.буттон1, "Моје дугме1");
тоолТип1.Попуп += ово.ТоолТип1_Попуп;
}

Догађај искачућег прозора са описом алата се дешава када пређете мишем преко елемента корисничког интерфејса у апликацији и појави се опис алата. Аргументи прослеђени у обрађивач догађаја омогућавају вам приступ подацима о опису алата, као што је његов текст или величина.

приватнипразнинаТоолТип1_Попуп(пошиљалац објекта, ПопупЕвентАргс е)
{
ТоолТип тоолтип = (ТоолТип) пошиљалац;
стринг тоолтипТект = тоолтип. ГетТоолТип (буттон1);
вар тоолтипСизе = е. ТоолТипСизе;
}

Превуците и испустите догађај

Многи елементи корисничког интерфејса могу да користе догађај превлачења и испуштања, укључујући панел, дугме, оквир са сликом, оквир групе и још много тога. Овај догађај се покреће када корисник превуче датотеку у УИ елемент.

приватнипразнинапанел1_ДрагДроп(пошиљалац објекта, ДрагЕвентАргс е)
{
стринг[] датотеке = (стринг[])е. Подаци. ГетДата (ДатаФорматс. ФилеДроп, лажно);
}

Догађаји преласка миша и напуштања миша

Догађај миша изнад се покреће када миш пређе преко елемента корисничког интерфејса. Када миш напусти и престане да лебди изнад елемента, покреће се догађај напуштања миша.

приватнипразнинабуттон1_МоусеЛеаве(пошиљалац објекта, ЕвентАргс е)
{
Дугме дугмета = (дугме) пошиљалац;
вар буттонТект = дугме. Текст;
}

Означено Промењени догађај

Елементи корисничког интерфејса који омогућавају кориснику да изабере опцију могу да користе означени промењени догађај. Ово укључује радио дугмад и поља за потврду. Функција се покреће када означите или поништите избор у пољу за потврду.

приватнипразнинацхецкБок1_ЦхецкедЦхангед(пошиљалац објекта, ЕвентАргс е)
{
ЦхецкБок поље за потврду = (ЦхецкБок) пошиљалац;
ЦхецкСтате стање = поље за потврду. ЦхецкСтате;
боол исЦхецкед = поље за потврду. Цхецкед;
}

Промењена вредност, Промењена изабрана вредност или Догађаји промене датума

Догађај промене вредности доступан је на елементима корисничког интерфејса који вам омогућавају да изаберете опцију за промену вредности. Ово укључује комбиноване оквире, бираче датума и времена или календар. Функција се покреће када корисник одабере нову вредност.

приватнипразнинамонтхЦалендар1_ДатеЦхангед(пошиљалац објекта, ДатеРангеЕвентАргс е)
{
МонтхЦалендар цалендар = (МонтхЦалендар) пошиљалац;
вар данас = календар. ТодаиДате;
вар изабрани датуми Почетак = е. Почетак;
вар селецтедДатесЕнд = е. Крај;
}

Кликните на дугме Догађај

Функција руковања догађајем клика се покреће када кликнете на дугме.

приватнипразнинадугме1_Клик(пошиљалац објекта, ЕвентАргс е)
{
Дугме дугмета = (дугме) пошиљалац;
стринг тектВалуе = дугме. Текст;
}

Структура руковаоца догађаја

Руковаоци догађаја имају два примарна параметра: пошиљаоца и објекат догађаја.

Пошиљалац је референца на УИ елемент или објекат који је покренуо догађај, као што је дугме, поље за потврду или табла. На пример, у догађају промене поља за потврду, пошиљалац би био поље за потврду на које је корисник кликнуо.

Параметар догађаја садржи објекат који чува податке о догађају који се догодио. Ово може укључивати координате Кс и И клика на дугме или локацију миша у тренутку када се догађај покрене.

приватнипразнинапанел1_ДрагДроп(пошиљалац објекта, ДрагЕвентАргс е)
{
// Приступ својствима УИ елемента који је покренуо догађај
Панел панел = (Панел) пошиљалац;
панел. Енаблед = лажно;
// Приступ подацима са догађаја
вар евентДата = е. Подаци;
}

Како креирати и користити руковаоце догађајима

Прво, креирајте нову Апликација Винформс Формс у Висуал Студио-у. Ако сте тек почели да користите Виндовс Формс, има их много клонирајте апликације које можете да направите док учите Виндовс Формс.

Обрађивачи догађаја на платну

Можете да генеришете руковаоце догађајима из прозора са својствима на десној страни платна. Када креирате нову апликацију Виндовс Формс, креирајте обрађивач догађаја за елемент корисничког интерфејса поља за потврду. Ово ће се покренути када корисник потврди или опозове избор у пољу за потврду.

  1. Отворите мени кутије са алаткама са леве стране Висуал Студио-а. Превуците и отпустите елемент корисничког интерфејса поља за потврду на платно.
  2. Означите поље за потврду на платну.
  3. У прозору са својствима на десној табли кликните на икону жуте муње да бисте видели листу догађаја. Померите се надоле до ЦхецкедЦхангед догађај.
  4. Кликните на празан простор поред ЦхецкедЦхангед догађај. Ово ће аутоматски генерисати нову функцију за руковање догађајем. Функција ће бити креирана у делу који се налази иза кода апликације, у вашем .цс фајл.
    приватнипразнинацхецкБок1_ЦхецкедЦхангед(пошиљалац објекта, ЕвентАргс е)
    {
    // Ваш код овде
    }

Руковаоци догађајима који користе код иза

Направите нову функцију у коду иза и повежите је са елементом корисничког интерфејса на платну.

  1. На платну кликните и превуците дугме корисничког интерфејса. Подразумевано, име новог дугмета ће бити „буттон1“.
  2. Отвори .цс. Ако сте оставили подразумевано име Виндовс Форм апликације „Форм1“, ово би било Форм1.цс.
  3. Унутар класе Форм1 креирајте нову функцију. Уверите се да прати структуру руковаоца догађаја и да има два параметра за пошиљаоца и објекат догађаја.
    приватнипразнинабуттон1_МоусеХоверЕвент(пошиљалац објекта, ЕвентАргс е)
    {
    // Ваш код овде
    }
  4. Повежите обрађивач догађаја са догађајем који лебди мишем дугмета1. То можете учинити у конструктору.
    јавности Форм1()
    {
    ИнитиализеЦомпонент();
    ово.буттон1.МоусеХовер += буттон1_МоусеХоверЕвент;
    }
  5. Алтернативно, такође можете повезати функцију са догађајем помоћу прозора са својствима на платну. Отворите прозор са својствима и унесите име руковаоца догађаја у поље МоусеХовер. Ово би било буттон1_МоусеХоверЕвент.

Како користити исти руковалац догађаја у више догађаја

Можете повезати исту функцију са више догађаја. У овом случају, ако постоји само једна функција позвана МоусеЕвент, можете додати тај руковалац догађаја и догађају преласка миша и клика мишем. Ово ће онда обрадити оба догађаја користећи исту функцију.

ово.буттон1.МоусеХовер += буттон1_МоусеЕвент;
ово.буттон1.МоусеЦлицк += буттон1_МоусеЕвент;

Коришћење догађаја у Виндовс Форм апликацији

Виндовс Формс апликација вам омогућава да превучете и отпустите различите елементе корисничког интерфејса као што су дугмад, панели или оквири за текст на платно. Овим елементима корисничког интерфејса можете додати руковаоце догађајима на основу различитих догађаја који се могу десити унутар апликације.

Ако правите Виндовс апликацију, можда ћете желети да додате слике или графику као део корисничког интерфејса. Можете користити различите Ц# класе као што су Грапхиц, Пен или Цолор, које ће вам омогућити да нацртате различите типове облика на платну.