WinForms 17 – TabControl

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.

Browser

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

okno
Týmto zabezpečíte plnú funkčnosť webBrowseru, ktorého zdrojový kód máte na stiahnutie tu download

Zároveň si tu ukončíme dnešný diel a nabudúce si ukážeme, ako používať ListView.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Scroll to Top