Windows Forms je framework pro vývoj grafických uživatelských rozhraní (GUI) v jazyce C#. Umožňuje vytvářet okenní aplikace s bohatou sadou grafických prvků.
### **Rozdíly oproti konzoli**
- **GUI vs. textové rozhraní:** Windows Forms umožňuje pracovat s grafickými prvky (tlačítka, textboxy, obrázky atd.), zatímco konzole je textové rozhraní.
- **Event-driven vs. lineární:** Windows Forms je event-driven, tj. reaguje na uživatelské akce (kliknutí, stisk klávesy atd.), zatímco konzole je lineární a provádí kód sekvenčně.
- **WYSIWYG editor:** Visual Studio a další IDE nabízí WYSIWYG editor pro usnadnění návrhu formulářů.
### **Umístění formuláře**
Formulář je základní prvek Windows Forms aplikace. Můžete ho umístit na obrazovku pomocí vlastností:
- **StartPosition:** Určuje, kde se formulář zobrazí při spuštění (např. na střed obrazovky).
- **Location:** Určuje souřadnice levého horního rohu formuláře.
- **Size:** Určuje velikost formuláře.
[https://lh7-us.googleusercontent.com/docsz/AD_4nXfr5iicDr7YNl595unIs2SAvoqLRY2rj01wHlQSDF72wtWofaTXSMRfPVEVXrKtQFu5Vga9ZHp1xdqoJ-CCtcJpEBArfw_oxVw6XyVNcwDI1Jwsy99Ddb1S-MDiRSCeihVCNdqY0SnqV_zrbVdD_tn9d_s2?key=TdJHzJ8yu4t4R2LmYIHy2w](https://lh7-us.googleusercontent.com/docsz/AD_4nXfr5iicDr7YNl595unIs2SAvoqLRY2rj01wHlQSDF72wtWofaTXSMRfPVEVXrKtQFu5Vga9ZHp1xdqoJ-CCtcJpEBArfw_oxVw6XyVNcwDI1Jwsy99Ddb1S-MDiRSCeihVCNdqY0SnqV_zrbVdD_tn9d_s2?key=TdJHzJ8yu4t4R2LmYIHy2w)
### **Kotvení prvků**
Kotvení prvků umožňuje definovat, jak se prvky formuláře budou pohybovat při změně jeho velikosti. Možnosti:
- **Top, Bottom, Left, Right:** Uchycení k okraji formuláře.
- **Center:** Uchycení do středu formuláře.
- **Fill:** Automatické vyplnění celého formuláře.
### **Vlastnosti a události**
Každý grafický prvek má vlastnosti, které definují jeho vzhled a chování. Události se spouštějí v reakci na uživatelské akce.
**Příklad:**
- Vlastnost `Text` tlačítka definuje jeho text.
- Událost `Click` tlačítka se spustí po jeho kliknutí.
[https://lh7-us.googleusercontent.com/docsz/AD_4nXdIwGuiGFzqX-wwvr6yergQ_3SuNcn0b-EvLv9E4KtJbhHmGuM3vWZ-iIdNhw1DVUj3TgZdxKKDZqXP-Jul4FvzyMyb5OLsL5hoA5B70BfZNBhvvarrAMhM0vOOSQZGzU2bNDOd0PcLGO2gux8PbxfRIdC-?key=TdJHzJ8yu4t4R2LmYIHy2w](https://lh7-us.googleusercontent.com/docsz/AD_4nXdIwGuiGFzqX-wwvr6yergQ_3SuNcn0b-EvLv9E4KtJbhHmGuM3vWZ-iIdNhw1DVUj3TgZdxKKDZqXP-Jul4FvzyMyb5OLsL5hoA5B70BfZNBhvvarrAMhM0vOOSQZGzU2bNDOd0PcLGO2gux8PbxfRIdC-?key=TdJHzJ8yu4t4R2LmYIHy2w)
### **Grafické prvky**
Windows Forms nabízí širokou škálu grafických prvků:
- **Tlačítka:** Pro spouštění akcí.
- **TextBoxy:** Pro zadávání textu.
- **ListBoxy:** Pro výběr z více možností.
- **ComboBoxy:** Pro výběr z rozbalovacího seznamu.
- **Obrázky:** Pro zobrazování obrázků.
- **Panely:** Pro uspořádání dalších prvků.
[https://lh7-us.googleusercontent.com/docsz/AD_4nXf4CxOnanAnPA-yMNmJ228knePAyLEP00qK1VokV6VVnr2H1pXVALFYy2jQXChXcIBv-l398sxheHkZO0EIXv0hV9bMbjydWF_1d1DWTJ7a2PkjhK8ka-OgqjEasr0D46BzTyPqTBm0HjnqgRJcLZBMAW0?key=TdJHzJ8yu4t4R2LmYIHy2w](https://lh7-us.googleusercontent.com/docsz/AD_4nXf4CxOnanAnPA-yMNmJ228knePAyLEP00qK1VokV6VVnr2H1pXVALFYy2jQXChXcIBv-l398sxheHkZO0EIXv0hV9bMbjydWF_1d1DWTJ7a2PkjhK8ka-OgqjEasr0D46BzTyPqTBm0HjnqgRJcLZBMAW0?key=TdJHzJ8yu4t4R2LmYIHy2w)
**Tipy:**
- Používejte vhodné grafické prvky pro danou funkčnost.
- Dodržujte konzistentní vzhled a chování prvků.
- Pečlivě testujte funkčnost GUI.
- Optimalizujte vzhled GUI pro různá rozlišení.
Dobré pochopení Windows Forms vám pomůže vytvářet uživatelsky přívětivé a funkční okenní aplikace v jazyce C#.