Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 16. diel - Ovládacie prvky Windows Forms štvrtýkrát

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Daniel Šup
David Hartinger:16.8.2017 22:59

Můžeš skrýt jen všechny a to tak, že celý tabcontrol posuneš o kousek nahoru, potom "zajede" část s taby pod horní lištu okna. Na přepínání tabů si pak můžeš udělat jakákoli tlačítka pomocí standardních buttonů kdekoli a dělat si s nimi co chceš.

Odpovedať
16.8.2017 22:59
New kid back on the block with a R.I.P
Avatar
Daniel Šup
Člen
Avatar
Odpovedá na David Hartinger
Daniel Šup:17.8.2017 12:54

Ahoj,

velice ti děkuji za tvou odpověď. Nyní jsem si zkusil posunout celý tabcontrol tak, aby část s taby byla pod horní lištou okna. Pak už jen stačí vložit button a přidat mu akci. Když toto udělám takto, tak to bude fungovat stejně jako na screenshotu.

 
Odpovedať
17.8.2017 12:54
Avatar
David Oczka
Tvůrce
Avatar
Odpovedá na Daniel Šup
David Oczka:17.8.2017 13:29

Je možné skrýt i jednotlivé záložky, ale je třeba to trochu obejít...

Vytvoříš si TabControl se všemi záložkami, které budeš chtít (i jejich případným obsahem). Pak v konstruktoru formuláře nebo Load události uložíš všechny záložky do vlastního seznamu, který je v kódu níže nazván myTabPages.

List<TabPage> myTabPages = new List<TabPage>();

public Form1()
{
    InitializeComponent();

    for (int i = 0; i < tabControl1.TabPages.Count; i++)
    {
        // Uložení záložky (získání reference) z tabControl1 do seznamu myTabPages
        myTabPages.Add(tabControl1.TabPages[i]);
    }
}

A pak podle situace odstraníš záložku, kterou budeš chtít skrýt, ze seznamu TabPages v instanci TabControl (níže nazvaná tabControl1). Reference na ni Ti zůstane zachována v seznamu myTabPages. V ukázce níže mám tlačítko a podle proměnné a si zobrazuji nebo skrývám třetí záložku.

bool a = true;

private void button1_Click(object sender, EventArgs e)
{
    if (a)
    {
        a = false;
        // Odstraníme záložku z komponenty tabControl1
        tabControl1.TabPages.RemoveAt(2);
    }
    else
    {
        a = true;
        // Vložíme záložku ze seznamu do komponenty tabControl1
        tabControl1.TabPages.Insert(2, TabPages[2]);
    }
}
 
Odpovedať
17.8.2017 13:29
Avatar
Daniel Šup
Člen
Avatar
Odpovedá na David Oczka
Daniel Šup:17.8.2017 18:58

Ahoj,

velice ti děkuji za tvou odpověď. Zkusil jsem zkopírovat tvůj kód a změnit 2 na 1 a druhá záložka se mi skryje.

 
Odpovedať
17.8.2017 18:58
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 4 správy z 14.