Windows Forms ви позволява да създавате настолни приложения визуално, като плъзгате елементи от потребителския интерфейс върху платно. Тези елементи на потребителския интерфейс включват джаджи като бутони, панели или квадратчета за отметка.

Всеки елемент на потребителския интерфейс получава определени събития. Например, можете да имате събитие за щракване за бутони, променено събитие за квадратчета за отметка или събитие с плъзгане и пускане за панели.

Събитията използват манипулатори на събития или функции, които се изпълняват само когато това конкретно събитие настъпи.

Типове събития, използвани за различни елементи на потребителския интерфейс

Всеки елемент на потребителския интерфейс има списък със събития. Има много курсове, където можете научете за важни UX или UI теории и практики за да ви помогне да решите какви елементи на потребителския интерфейс да използвате. Ето няколко примера за събития, използвани от елементи на потребителския интерфейс.

Клавиш надолу, Клавиш нагоре или Събития при натискане на клавиш

instagram viewer

Елементите на потребителския интерфейс, които позволяват на потребителя да въвежда текст, като текстово поле, могат да използват тези събития. Тези събития се задействат всеки път, когато потребителят натисне клавиш на клавиатурата си.

Те могат да бъдат полезни в сценарии, в които имате функционалност за търсене и може да се наложи постоянно да проверявате каква е стойността на текстовото поле.

частеннищоженtextBox1_KeyUp(подавател на обект, KeyEventArgs e)
{
Текстово поле TextBox = (TextBox) изпращач;
низ currentTextBoxValue = текстово поле. Текст;
}

Събитие за зареждане

Събитието за зареждане възниква, когато формулярът или елемент от потребителския интерфейс се изобрази на екрана. Можете да използвате това събитие, когато искате конкретна функционалност да се появи на етапа на инициализация на формуляра или контрола.

Един сценарий, при който това може да бъде полезно, е ако искате програмно да добавите контроли към формуляра, докато той все още се зарежда.

частеннищоженForm1_Load(подавател на обект, EventArgs e)
{
ToolTip toolTip1 = нов ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = вярно;
toolTip1.SetToolTip (този.button1, "Моят бутон 1");
toolTip1.Изскачащ прозорец += това.ToolTip1_Popup;
}

Изскачащото събитие с подсказка се случва, когато задържите курсора на мишката върху елемент от потребителския интерфейс на приложението и се появява подсказка. Аргументите, предавани в манипулатора на събития, ви позволяват да получите достъп до данни за подсказката, като например нейния текст или размер.

частеннищоженToolTip1_Popup(подавател на обект, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) подател;
низ tooltipText = подсказка. GetToolTip (button1);
вар tooltipSize = e. ToolTipSize;
}

Събитие с плъзгане и пускане

Много елементи на потребителския интерфейс могат да използват събитието с плъзгане и пускане, включително панелът, бутонът, полето за картина, груповото поле и др. Това събитие се задейства, когато потребителят плъзне файл в елемента на потребителския интерфейс.

частеннищоженpanel1_DragDrop(подател на обект, DragEventArgs e)
{
string[] файлове = (string[])e. Данни. GetData (DataFormats. FileDrop, фалшиво);
}

Събития с мишката върху и напускането на мишката

Събитието с мишката върху се задейства, когато мишката задържи курсора на мишката върху елемент от потребителския интерфейс. След като мишката напусне и спре да се задържа над елемента, събитието напускане на мишката се задейства.

частеннищоженbutton1_MouseLeave(подавател на обект, EventArgs e)
{
Бутон за бутон = подател на (бутон);
вар buttonText = бутон. Текст;
}

Отметнато Променено събитие

Елементите на потребителския интерфейс, които позволяват на потребителя да избере опция, могат да използват провереното променено събитие. Това включва радио бутони и квадратчета за отметка. Функцията се задейства, когато поставите или премахнете отметката от квадратчето.

частеннищоженcheckBox1_CheckedChanged(подавател на обект, EventArgs e)
{
CheckBox checkbox = (CheckBox) подател;
CheckState състояние = квадратче за отметка. CheckState;
bool isChecked = квадратче за отметка. Проверено;
}

Променена стойност, Променена избрана стойност или Променена дата Събития

Събитието за промяна на стойността е достъпно в елементите на потребителския интерфейс, които ви позволяват да изберете опция за промяна на стойност. Това включва комбинирани полета, инструменти за избор на дата и час или календар. Функцията се задейства, когато потребителят избере нова стойност.

частеннищоженmonthCalendar1_DateChanged(подавател на обект, DateRangeEventArgs e)
{
MonthCalendar calendar = (MonthCalendar) изпращач;
вар днес = календар. Дата днес;
вар избрани дати Начало = e. Старт;
вар избрани датиКрай = e. Край;
}

Щракнете върху бутона Събитие

Функцията за обработка на събитие за щракване се задейства, когато щракнете върху бутон.

частеннищоженбутон1_Щракнете(подавател на обект, EventArgs e)
{
Бутон за бутон = подател на (бутон);
низ textValue = бутон. Текст;
}

Структурата на манипулатора на събития

Манипулаторите на събития имат два основни параметъра: подател и обект на събитие.

Подателят е препратка към елемента или обекта на потребителския интерфейс, който е задействал събитието, като бутон, квадратче за отметка или панел. Например, в събитие с променена отметка, подателят ще бъде квадратчето за отметка, върху което потребителят е щракнал.

Параметърът на събитието съдържа обект, който съхранява данни за настъпилото събитие. Това може да включва координатите X и Y на щракване върху бутон или местоположението на мишката в момента, в който събитието се задейства.

частеннищоженpanel1_DragDrop(подател на обект, DragEventArgs e)
{
// Достъп до свойствата на елемента на потребителския интерфейс, който е задействал събитието
Панел панел = (Панел) изпращач;
панел. Разрешено = фалшиво;
// Достъп до данни от събитието
вар eventData = e. Данни;
}

Как да създавате и използвате манипулатори на събития

Първо, създайте нов Приложение Winforms Forms във Visual Studio. Ако сте нов в Windows Forms, има много клонирайте приложения, които можете да правите, докато изучавате Windows Forms.

Манипулатори на събития на платното

Можете да генерирате манипулатори на събития от прозореца със свойства от дясната страна на платното. След като създадете ново приложение на Windows Forms, създайте манипулатор на събитие за елемента на потребителския интерфейс на квадратчето за отметка. Това ще се задейства, когато потребителят постави или премахне отметката от квадратчето.

  1. Отворете менюто на кутията с инструменти отляво на Visual Studio. Плъзнете и пуснете елемент от потребителския интерфейс в квадратчето за отметка върху платното.
  2. Маркирайте квадратчето за отметка на платното.
  3. В прозореца със свойства в десния панел щракнете върху жълтата икона на светкавица, за да видите списъка със събития. Превъртете надолу до Проверено Променено събитие.
  4. Кликнете върху празното място до Проверено Променено събитие. Това автоматично ще генерира нова функция за обработка на събитието. Функцията ще бъде създадена в кодовата част на приложението, във вашия .cs файл.
    частеннищоженcheckBox1_CheckedChanged(подавател на обект, EventArgs e)
    {
    // Вашият код тук
    }

Манипулатори на събития, използващи кода отзад

Създайте нова функция в кода отзад и я свържете с елемента на потребителския интерфейс на платното.

  1. Върху платното щракнете и плъзнете бутон от потребителски елемент. По подразбиране името на новия бутон ще бъде "button1".
  2. Отвори .cs Ако сте оставили името на приложението Windows Form по подразбиране "Form1", това ще бъде Form1.cs.
  3. Вътре в класа Form1 създайте нова функция. Уверете се, че следва структурата на манипулатора на събитие и има два параметъра за подателя и обекта на събитието.
    частеннищоженbutton1_MouseHoverEvent(подавател на обект, EventArgs e)
    {
    // Вашият код тук
    }
  4. Свържете манипулатора на събитие със събитието за задържане на мишката на button1. Можете да направите това в конструктора.
    обществено Формуляр 1()
    {
    InitializeComponent();
    това.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Като алтернатива можете също да свържете функцията със събитието, като използвате прозореца със свойства на платното. Отворете прозореца със свойства и въведете името на вашия манипулатор на събитие в полето MouseHover. Това би било button1_MouseHoverEvent.

Как да използвате един и същ манипулатор на събития в множество събития

Можете да свържете една и съща функция с множество събития. В този случай, ако имаше една извикана функция MouseEvent, можете да добавите този манипулатор на събитие както към събитието за задържане на мишката, така и за щракване на мишката. След това ще обработва и двете събития, използвайки една и съща функция.

това.button1.MouseHover += button1_MouseEvent;
това.button1.MouseClick += button1_MouseEvent;

Използване на събития в приложение за Windows Form

Приложението на Windows Forms ви позволява да плъзгате и пускате различни елементи на потребителския интерфейс като бутони, панели или текстови полета върху платно. Можете да добавите манипулатори на събития към тези елементи на потребителския интерфейс въз основа на различните събития, които могат да възникнат в приложението.

Ако създавате приложение за Windows, може също да искате да добавите изображения или графики като част от вашия потребителски интерфейс. Можете да използвате различни C# класове, като например Graphic, Pen или Color, които ще ви позволят да рисувате различни видове форми върху платното.