Určitě nejsem jediný, koho nebaví klikat, nastavovat a upravovat uživatelské rozhraní v desktopových aplikacích. Když se vytvoří rozsáhlejší formulář s mnoha komponenty, tak se skoro vždy ukáže, že přehlednost klesla na neúnosnou míru. To vede k tomu, že uživatel není schopný se ve formuláři orientovat, a proto při zadávání dat spíš udělá chybu. Já jsem si oblíbil jednoduchý trik na zpřehlednění formuláře, který jsem poprvé viděl v jednom českém účetním programu. Spočívá v tom, že když je formulářový prvek aktivní, tak změní svoji barvu pozadí.
Po implementaci vypadá aplikace živější, uživatel pořád ví, kde se právě nachází a kam se dostal po stisknutí tabulátoru. Další výhoda je v tom, že můžeme klidně vytvořit celý formulář, a dodatečně vložit kód pro zvýraznění aktivní komponenty.
Implementace
Po provedení metody InitializeComponent v konstruktoru formuláře, projdeme komponenty v kolekci Controls formuláře, kterým přidáme události Enter a Leave, které nám budou obarvovat aktuální komponentu.
public Form1()
{
InitializeComponent();
foreach (Control control in Controls)
{
if (control is TextBox)
{
control.Enter += new EventHandler(HighLight_Enter);
control.Leave += new EventHandler(HighLight_Leave);
}
//další typy komponent
}
//...
}
//...
void HighLight_Enter(object sender, EventArgs e)
{
((Control)sender).BackColor = Color.LightYellow;
}
void HighLight_Leave(object sender, EventArgs e)
{
((Control)sender).BackColor = Color.White;
}
Snad jedinou vadou na kráse je, že všechny komponenty neimplementuji BackColor, tak jak by jsme si představovali. Například po změne BackColor u CheckBox se nezmění pozadí zaškrtávacího políčka ale celé komponenty.
Jak řešíte Vy přehlednost formulářů?
17. června 2008 18:52