Dnešní článek z řady článků o vývoji software na platformě .NET a o jazyku C# bude zaměřen na tvorbu úvodních dialogů při načítání programu. K čemu to bude dobré, zjistíte, když budete číst dále.
Jak jsem se již zmínil, tento článek vám pomůže k úspěšné tvorbě úvodních dialogů. Úvodní dialogy jsou dobré u náročnějších aplikací nebo u aplikací, které se nenastartují okamžitě. Úvodní dialog nám vlastně zabrání vyvolání dojmu uživatele "ten rám zase nefunguje", neboli uživateli bude zobrazeno, že program něco dělá a načítá se.
Použitý software
K praktické části dnešního článku jsem využil následující softwarové vybavení:
- Operační systém: Microsoft Windows 7 Professional
- Vývojové prostředí: Microsoft Visual Studio Team System 2008 SP1
- Framework: .NET Framework 3.5
Začínáme
Naším cílem je vytvořit jednoduchou aplikaci, založenou na Windows Forms. Aplikace bude simulovat dlouhé načítání a po načtení bude obsahovat jedno tlačítko, které po kliknutí vypíše námi určený text.
- Prvně vytvoříme nový projekt Windows Forms a pojmenujeme jej Uvodni okno (tvorbu projektu ve Visual Studiu již nebudu popisovat).
- Nyní přidáme do formuláře tlačítko a nápis na něm nastavíme na text Klikni.
- Naším dalším úkolem je přidání prvku Label do okna aplikace a vytvoření události Click (kliknutí na tlačítko) pro button1.
- K oživení tlačítka použijeme následující kód:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "Kliknul jsi!";
}
Nyní máme základní část naší aplikace hotovou. V další části tohoto článku se vrhneme na tvorbu úvodního okna programu a simulaci načítání velkého množství knihoven.
Úvodní obrazovka
Prvním krokem, který musíme podstoupit, je přidání dalšího formuláře do našeho projektu. Vytvořme nyní formulář pod názvem Uvod.
- Prvně odstraníme našemu novému oknu rámeček. Pro odstranění rámečku musíme nastavit vlastnost FormBorderStyle na hodnotu none.
- Jak nyní graficky ztvárníme naši úvodní obrazovku, nechám na každém jedinci, pro náš článek je důležité pouze umístění progressbaru do formuláře.
- Pro zobrazení uvítacího okna použijeme událost Load formuláře Form1. A vložíme do ní následující kód:
private void Form1_Load(object sender, EventArgs e)
{
Uvod okno = new Uvod();
okno.Show();
Application.DoEvents();
for (int i = 0; i < 100; i++)
{
okno.progressBar1.Value = i;
Thread.Sleep(30);
}
okno.Close();
}
Pojďme se nyní podívat detailněji na obsah metody Form1_Load. Prvně musíme vytvořit instanci třídy Uvod a poté zobrazit okno pomocí metody Show().
Uvod okno = new Uvod();
okno.Show();
Velmi důležitým krokem je volání metody Application.DoEvents() po zobrazení úvodního okna. Pokud bychom toto volání nepoužili, riskujeme, že se formulář před cyklem nemusí nutně úplně nakreslit.
Application.DoEvents();
Nakonec pomocí cyklu simulujeme načítání a postupně nastavíme hodnoty progressbar. Pro simulaci dlouhého načítání využijeme metodu Sleep() třídy Thread. O práci s vlákny se více dozvíte zde.
for (int i = 0; i < 100; i++)
{
okno.progressBar1.Value = i;
Thread.Sleep(30);
}
Posledním krokem bude vypnutí úvodního okna.
okno.Close();
Závěr
Cílem článku nebylo naučit programování v C#, ale naučit již znalé programátory vytvořit úvodní obrazovky aplikace, a tím vylepšit své dosavadní programy. Příklad by se dal jistě dále rozvést, například zde neuvádím kontrolu chyby v době inicializace. Pokud by k takovéto chybě došlo, aplikace má skončit s chybovou hláškou.