Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 16 - Ovládací prvky Windows Forms počtvrté

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá 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š.

Odpovědět
16.8.2017 22:59
New kid back on the block with a R.I.P
Avatar
Daniel Šup
Člen
Avatar
Odpovídá 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.

 
Odpovědět
17.8.2017 12:54
Avatar
David Oczka
Tvůrce
Avatar
Odpovídá 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]);
    }
}
 
Odpovědět
17.8.2017 13:29
Avatar
Daniel Šup
Člen
Avatar
Odpovídá 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.

 
Odpovědět
17.8.2017 18:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 14.