Windows Forms vám umožňuje vytvářet desktopové aplikace vizuálně přetažením prvků uživatelského rozhraní na plátno. Tyto prvky uživatelského rozhraní zahrnují widgety, jako jsou tlačítka, panely nebo zaškrtávací políčka.
Každý prvek uživatelského rozhraní přijímá určité události. Můžete mít například událost kliknutí pro tlačítka, změněnou událost pro zaškrtávací políčka nebo událost přetažení pro panely.
Události používají obslužné rutiny nebo funkce, které se spouštějí pouze tehdy, když nastane tato konkrétní událost.
Typy událostí používaných pro různé prvky uživatelského rozhraní
Každý prvek uživatelského rozhraní má seznam událostí. Existuje mnoho kurzů, kde můžete dozvědět se o důležitých UX nebo UI teoriích a postupech které vám pomohou rozhodnout, jaké prvky uživatelského rozhraní použít. Zde je několik příkladů událostí používaných prvky uživatelského rozhraní.
Události stisknuté klávesy, klávesy nahoru nebo stisknutí klávesy
Tyto události mohou využívat prvky uživatelského rozhraní, které uživateli umožňují zadávat text, například textové pole. Tyto události se spouštějí pokaždé, když uživatel stiskne klávesu na své klávesnici.
Ty mohou být užitečné ve scénářích, kde máte funkci vyhledávání a možná budete muset neustále kontrolovat, jakou hodnotu má textové pole.
soukroméprázdnotatextBox1_KeyUp(odesílatel objektu, KeyEventArgs e)
{
TextBox textbox = (TextBox) sender;
string currentTextBoxValue = textové pole. Text;
}
Načíst událost
K události načtení dochází, když je formulář nebo prvek uživatelského rozhraní vykreslen na obrazovce. Tuto událost můžete použít, když chcete, aby ve fázi inicializace formuláře nebo ovládacího prvku došlo ke konkrétní funkci.
Jeden scénář, kde to může být užitečné, je, pokud chcete do formuláře programově přidat ovládací prvky, zatímco se stále načítá.
soukroméprázdnotaForm1_Load(odesílatel objektu, EventArgs e)
{
ToolTip toolTip1 = Nový ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = skutečný;
toolTip1.SetToolTip (this.button1, "Moje tlačítko 1");
toolTip1.Popup += tento.ToolTip1_Popup;
}
Událost vyskakovacího okna s popisem nastane, když najedete myší na prvek uživatelského rozhraní v aplikaci a zobrazí se popis. Argumenty předané do obslužné rutiny události vám umožňují přístup k datům o popisku, jako je jeho text nebo velikost.
soukroméprázdnotaToolTip1_Popup(odesílatel objektu, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) odesílatel;
string tooltipText = tooltip. GetToolTip (tlačítko1);
var tooltipSize = e. ToolTipSize;
}
Událost přetažení
Mnoho prvků uživatelského rozhraní může používat událost přetažení, včetně panelu, tlačítka, obrázkového rámečku, skupinového rámečku a dalších. Tato událost se spustí, když uživatel přetáhne soubor do prvku uživatelského rozhraní.
soukroméprázdnotapanel1_DragDrop(odesílatel objektu, DragEventArgs e)
{
string[] soubory = (string[])e. Data. GetData (DataFormats. FileDrop, Nepravdivé);
}
Události přejetí myší a opuštění myši
Událost ukazatele myši se spustí, když myš najede na prvek uživatelského rozhraní. Jakmile myš odejde a přestane najíždět na prvek, spustí se událost opuštění myši.
soukroméprázdnotabutton1_MouseLeave(odesílatel objektu, EventArgs e)
{
Tlačítko tlačítko = (tlačítko) odesílatel;
var buttonText = tlačítko. Text;
}
Zaškrtnuta změněná událost
Prvky uživatelského rozhraní, které uživateli umožňují vybrat možnost, mohou použít zaškrtnutou změněnou událost. To zahrnuje přepínače a zaškrtávací políčka. Funkce se spustí, když zaškrtnete nebo zrušíte zaškrtnutí políčka.
soukroméprázdnotacheckBox1_CheckedChanged(odesílatel objektu, EventArgs e)
{
CheckBox checkbox = (CheckBox) odesílatel;
CheckState state = zaškrtávací políčko. CheckState;
bool isChecked = zaškrtávací políčko. Kontrolovány;
}
Události změny hodnoty, změny vybrané hodnoty nebo data změny
Událost změny hodnoty je k dispozici u prvků uživatelského rozhraní, které umožňují vybrat možnost změny hodnoty. To zahrnuje pole se seznamem, nástroje pro výběr data a času nebo kalendář. Funkce se spustí, když uživatel vybere novou hodnotu.
soukroméprázdnotamonthCalendar1_DateChanged(odesílatel objektu, DateRangeEventArgs e)
{
MonthCalendar kalendář = (MonthCalendar) odesílatel;
var dnes = kalendář. TodayDate;
var selectedDatesStart = e. Start;
var selectedDatesEnd = e. Konec;
}
Klepněte na tlačítko Událost
Funkce obsluhy události kliknutí se spustí, když kliknete na tlačítko.
soukroméprázdnotabutton1_Click(odesílatel objektu, EventArgs e)
{
Tlačítko tlačítko = (tlačítko) odesílatel;
řetězec textValue = tlačítko. Text;
}
Struktura obsluhy událostí
Obslužné rutiny událostí mají dva primární parametry: odesílatele a objekt události.
Odesílatel je odkaz na prvek uživatelského rozhraní nebo objekt, který spustil událost, jako je tlačítko, zaškrtávací políčko nebo panel. Například v události změny zaškrtávacího políčka bude odesílatel zaškrtávací políčko, na které uživatel klikl.
Parametr události obsahuje objekt, který ukládá data o události, která nastala. To může zahrnovat souřadnice X a Y kliknutí na tlačítko nebo umístění myši v okamžiku spuštění události.
soukroméprázdnotapanel1_DragDrop(odesílatel objektu, DragEventArgs e)
{
// Přístup k vlastnostem prvku uživatelského rozhraní, který spustil událost
Panel panelu = (Panel) odesílatel;
panel. Povoleno = Nepravdivé;
// Přístup k datům z události
var eventData = e. Data;
}
Jak vytvářet a používat obslužné rutiny událostí
Nejprve vytvořte nový Aplikace Winforms Forms ve Visual Studiu. Pokud s Windows Forms začínáte, je jich mnoho klonovat aplikace, které můžete vytvořit při učení Windows Forms.
Obslužné nástroje událostí na plátně
Obslužné rutiny událostí můžete generovat z okna vlastností na pravé straně plátna. Jakmile vytvoříte novou aplikaci Windows Forms, vytvořte obslužnou rutinu události pro prvek uživatelského rozhraní zaškrtávacího políčka. To se spustí, když uživatel zaškrtne nebo zruší zaškrtnutí políčka.
- Otevřete nabídku panelu nástrojů nalevo od sady Visual Studio. Přetáhněte zaškrtávací políčko prvku uživatelského rozhraní na plátno.
- Zvýrazněte zaškrtávací políčko na plátně.
- V okně vlastností na pravém panelu kliknutím na ikonu žlutého blesku zobrazíte seznam událostí. Přejděte dolů na ZkontrolovánoZměněno událost.
- Klikněte na prázdné místo vedle ZkontrolovánoZměněno událost. Tím se automaticky vygeneruje nová funkce pro zpracování události. Funkce bude vytvořena v kódové části aplikace, ve vašem
soubor .cs. soukroméprázdnotacheckBox1_CheckedChanged(odesílatel objektu, EventArgs e)
{
// Váš kód zde
}
Obslužné rutiny událostí pomocí kódu na pozadí
Vytvořte novou funkci v kódu za a propojte ji s prvkem uživatelského rozhraní na plátně.
- Na plátně klikněte a přetáhněte prvek uživatelského rozhraní tlačítka. Ve výchozím nastavení bude název nového tlačítka „button1“.
- OTEVŘENO
.cs Pokud jste ponechali výchozí název aplikace Windows Form "Form1", bude to tak Form1.cs. - Uvnitř třídy Form1 vytvořte novou funkci. Ujistěte se, že odpovídá struktuře obsluhy události a má dva parametry pro odesílatele a objekt události.
soukroméprázdnotabutton1_MouseHoverEvent(odesílatel objektu, EventArgs e)
{
// Váš kód zde
} - Propojte obslužnou rutinu události s událostí najetí myší na tlačítko1. Můžete to udělat v konstruktoru.
veřejnost Form1()
{
InitializeComponent();
tento.button1.MouseHover += button1_MouseHoverEvent;
} - Alternativně můžete také propojit funkci s událostí pomocí okna vlastností na plátně. Otevřete okno vlastností a do pole MouseHover zadejte název vaší obsluhy události. To by bylo button1_MouseHoverEvent.
Jak používat stejnou obslužnou rutinu událostí pro více událostí
Stejnou funkci můžete propojit s více událostmi. V tomto případě, pokud byla zavolána jediná funkce MouseEvent, můžete přidat tento obslužný program události jak k události najetí myší, tak k události kliknutí myší. To pak zpracuje obě události pomocí stejné funkce.
tento.button1.MouseHover += button1_MouseEvent;
tento.button1.MouseClick += button1_MouseEvent;
Použití událostí ve formulářové aplikaci Windows
Aplikace Windows Forms vám umožňuje přetahovat různé prvky uživatelského rozhraní, jako jsou tlačítka, panely nebo textová pole, na plátno. K těmto prvkům uživatelského rozhraní můžete přidat obslužné rutiny událostí na základě různých událostí, které mohou v aplikaci nastat.
Pokud vytváříte aplikaci pro Windows, možná budete chtít přidat obrázky nebo grafiku jako součást uživatelského rozhraní. Můžete použít různé třídy C#, jako je třída Graphic, Pen nebo Color, která vám umožní kreslit na plátno různé typy tvarů.