Nascondere una pagina del tabcontrol

domenica 29 gennaio 2006 - 14.29

ikaroweb Profilo | Junior Member

Volevo sapere se è possibile nascondere una tabpage del controllo tabcontrol. Grazie a tutti per le risposte.

Brainkiller Profilo | Guru

>Volevo sapere se è possibile nascondere una tabpage del controllo
> tabcontrol. Grazie a tutti per le risposte.

Allora il controllo TabControl contiene una collection di TabPage.
La classe TabPage ha come proprietà anche Visible (true/false) quindi penso sia possibile.

tabControl1.TabPages(0).Visible=false

Prova così.
ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

ikaroweb Profilo | Junior Member

Ho provato, non nasconda il tabpage ma il suo contenuto e quando ci clicchi sopra ricompare dinuovo.

eikichi Profilo | Newbie

Potresti salvare il tabPage in un'altra variabile, eliminarlo dalla collezione TabPages quando devi renderlo invisibile e reinserirlo nella posizione corretta quando devi renderlo visibile.



ikaroweb Profilo | Junior Member

E come?

eikichi Profilo | Newbie

>E come?

Questo è quello che è riuscito a elaborare la mia mente contorta!

Per prima cosa dichiari una variabile visibile a livello di form
private TabPage tbTemp = null;

poi piazzi un pezzo di codice simile al seguente nel metodo che vuoi e con il controllo sul TabPage da nascondere che vuoi (io l'ho messo nell'evento click di un pulsante che nasconde o ripristina il TabPage)

if(tbTemp == null)
{
//Salva il TabPage da nascondere in tbTemp e lo rimuove dall'insieme
tbTemp = tabPage2;
tc.TabPages.Remove(tabPage2);
}
else
{
//Reinserisce il TabPage tbTemp nell'insieme.
//Siccome non sono riuscito a trovare un modo per inserire direttamente il TabPage nella posizione che aveva prima (i TabPage vengono aggiunti sempre alla fine dell'insieme), elimino uno ad uno i TabPage successivi e li riaggiungo
int index = tbTemp.TabIndex;
tc.TabPages.Add(tbTemp);
TabPage tp;
for(int i=index;i<tc.TabCount-1;i++)
{
tp = tc.TabPages[index];
tc.TabPages.RemoveAt(index);
tc.TabPages.Add(tp);
}
tbTemp = null;
}

ikaroweb Profilo | Junior Member

Lo provo e ti faccio sapere, comunque il tabpage voglio nasconderlo in partenza e non tramite bottone. basta inserire il codice all'avvio del form ed è apposto.

ikaroweb Profilo | Junior Member

Allora mi è bastato usare solo questo


TabControl1.TabPages.RemoveAt(1).

ikaroweb Profilo | Junior Member

Allora mi è bastato usare solo questo


TabControl1.TabPages.RemoveAt(1).

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5