Dnes sa pozrieme podrobnejšie pozrieme na TabControl a ukážeme si ako v ňom za chodu generovať nové (podobné) stránky. Toto si ukážeme na veľmi jednoduchom príklade rozhrania webového prehliadača.
Poznámka : Ako iste viete, dnešný diel mal byť posledný z tejto série, no po konzultácií som došiel k záveru, že napíšem ešte dva ďalšie diely.
Dnes si ukážeme ako sa používa TabControl na príklade jednoduchého grafického rozhrania pre integrovaný webový prehliadač v .NET platforme.
Príprava webového rozhrania
Na začiatok by ste si mali pripraviť User Control, ktorý budeme používať ako samotný webový prehliadač. Známe webové prehliadače toto často robia aj samostatnými procesmi, ktoré zobrazia vnútri tabu.
V UserControli vám bude stačiť prehliadač, TextBox a 3 tlačidlá. môžete použiť SplitControli alebo mriežku na správne usadenie prvkov. Potom už len nabindujete tlačidlá na akcie WebBrowseru a máte Control dokončený.
Odporúčam controlu pridať vlastný TabPage, ktorý si v konštruktore nastaví a pridá sa doň. Tým môžete ľahko ovplyvňovať jeho meno.
TabControl
Do projektu teraz pridajte TabControl, ktorému priradíte len JEDEN tab z textom +. Obsah tohto TabPageu môžete nechať prázdny. Dôležité je TabControlu priradiť event MouseClicked a SelectedIndexChanged. Farby a vzhľad si môžete nastaviť, ako vám bude vyhovovať.
V kóde pre MouseClicked event zadajte nasledujúce :
var tabControl = sender as TabControl; var tabs = tabControl.TabPages; if (e.Button == MouseButtons.Middle) { TabPage tp = tabs.Cast<TabPage>() .Where((t, i) => tabControl.GetTabRect(i).Contains(e.Location)) .First(); if (tp.Text != "+") tabs.Remove(tp); }
Tento kód zabezpečuje odstránenie tabu po pravom kliknutí.
V evente SelectedIndexChanged použite len
if (tabControl1.SelectedIndex == tabControl1.TabCount-1) { AddPage(); }
AddPage metódu pridajte aj do konštruktora.
Metóda AddPage
Metóda AddPage má za úlohu pridať do TabControlu nový Page obsahujúci WebBrowser. Jej kód je nasledujúci
Browser b = new Browser(); //Vytvorí sa nový browser tabControl1.Controls.Add(b.page); //Prídá sa TabPage, ktorý máme uložený v Browseri Control p = tabControl1.Controls[tabControl1.TabCount - 2]; //Získame aktuálny + TabPage tabControl1.Controls.RemoveAt(tabControl1.TabCount - 2); //Odstránime ho tabControl1.Controls.Add(p); //A nanovo ho pridáme tabControl1.SelectedIndex = tabControl1.TabCount - 2; //Nakoniec vyberieme novopridaný Page
Nový page sme vytvorili priamo v Browseri, a to nasledovne :
//Mimo konštruktor public TabPage page; //V konštruktori page = new TabPage("Prázdna stránka"); //Vytvoríme nový objekt page.Location = new System.Drawing.Point(4, 22); page.Name = "tabPageBrowser"; //Nastavíme pozíciu, meno, page.Padding = new System.Windows.Forms.Padding(3); //odsadenie page.Size = new System.Drawing.Size(918, 446); //veľkosť page.TabIndex = 1;//a index pageu page.Text = "Empty Page";//Text označíme ako prázdnu stránku page.UseVisualStyleBackColor = true; //Povolíme vizuálne štýli page.Controls.Add(this); //Pridáme browser do Tabu this.Dock = DockStyle.Fill; //A roztiahneme ho
Týmto zabezpečíte plnú funkčnosť webBrowseru, ktorého zdrojový kód máte na stiahnutie tu
Zároveň si tu ukončíme dnešný diel a nabudúce si ukážeme, ako používať ListView.