Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
TabControl e invisibilità delle TabPages
giovedì 10 aprile 2008 - 19.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
gio 10 apr 2008 - 19:26
Salve a tutti
Ho inserito in un mio progetto con VB 2005 un TabControl che contiene alcune TabPages...
Usandolo per una procedura in stile Wizard, vorrei che man mano fossero visibili solo le TabPages che desidero io...
Purtroppo però non riesco a nasconderle, neppure usando i vari metodi HIDE che ho trovato....
Sapreste darmi una dritta ?
Inoltre secondo voi è funzionale usare un TabControl per una procedura Wizard ? O c'è qualcosa di migliore ?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 11 apr 2008 - 08:12
ciao,
>Purtroppo però non riesco a nasconderle, neppure usando i vari
>metodi HIDE che ho trovato....
si effettivamente anche io avevo lavorato togliendole con il metodo "Remove":
tabMain.TabPages.Remove(tab1)
e quando mi serviva rimetterla
tabMain.TabPages.Add(tab1);
>Inoltre secondo voi è funzionale usare un TabControl per una
>procedura Wizard ? O c'è qualcosa di migliore ?
anche io uso questa tecnica, solo che tipicamente lascio tutte le tab, e lavoro impostando il selectedindex della tabPrincipale.
In testa, ci metto una bella label con sfondo, alta a sufficienza da nascondere l'intestazione (le linguette delle tab) in modo da non farle cliccare all'utente.
Per "camuffarle" di piu' con la form, imposto "Appearance=FlatButtons" cosi' fa proprio la funzione di un pannello...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
ven 11 apr 2008 - 13:47
SI però è strana questa cosa...nel vecchio VB non c'era questo problema...
Purtroppo non posso fare un remove dato che dentro ogni tabpage ci sono diversi controlli che sarebbe quantomeno dura ricreare via codice ogni volta...
Ad ogni modo un metodo alternativo me lo consigliereste ?
Rik142
Profilo
| Junior Member
52
messaggi | Data Invio:
ven 11 apr 2008 - 13:51
Io ti consiglio di usare semplicemente degli user control simulando l'attività di passare da un tab all'altro usando dei button.
Io avevo il problema anche di tenere bloccato alcuni tab e non c'era modo. In questa maniera sono riuscito nell'intento.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 11 apr 2008 - 15:24
>SI però è strana questa cosa...nel vecchio VB non c'era questo
>problema...
eh qui sei in .net, le cose cambiano...e di parecchio...a parte qualche piccola scocciatura dovuta al passaggio di tecnologia, vedrai che ti troverai molto bene piu' avanti...
>Purtroppo non posso fare un remove dato che dentro ogni tabpage
>ci sono diversi controlli che sarebbe quantomeno dura ricreare
>via codice ogni volta...
no ma guarda che il "remove" = "toglierlo dalla collezione" ma non eliminarlo!
Puoi fare remove e Add, tanto la variabile "tabxxx" ha tutti i controlli come li hai fatti tu da designer...non c'e' questo problema!
>Ad ogni modo un metodo alternativo me lo consigliereste ?
io mi sono trovato bene con questo, tanti giri di pannelli da gestire la posizione/visibilita' mi sembra si fattibile, ma piu' scomodo
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
ven 11 apr 2008 - 21:34
Scusa mi puoi fare un esempio di codice ? cioè dici che col .remove gli oggetti dentro alla TabPages rimangono intatti quando faccio poi l' .add ?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 12 apr 2008 - 02:00
>cioè dici che col .remove
>gli oggetti dentro alla TabPages rimangono intatti quando faccio
>poi l' .add ?
esatto, fai presto, se tu hai una tabPage1 dentro ad un tabControl1, quando fai :
tabControl1.TabPages.Remove(tabPage1);
e poi tutto torna come era a design (con i controlli, gli eventi etc...) facendo:
tabControl1.TabPages.Add(tabPage1);
perche' tabPage1 è un'istanza (oggetto) della classe TabPage, che dentro ha tutti i suoi controlli i quali hanno a loro volta i loro eventi, proprieta' etc...
Togliere dalla collezione TabPages, significa che il controllo che gestisce le pagine (appunto il TabControl principale) non le visualizzera' piu' a video, ma l'oggetto in memoria e quindi se viene aggiunto (a lui o ad un altro tabControl) verra' visualizzato a video ma non viene "cancellato"...come ti ripeto viene tolto dalla collection.
Quindi vedi te se vuoi fare qualche altro modo, perche' ti trovi meglio, ma cmq rimane che questo problema specifico di perdere controlli non c'e'.
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
sab 12 apr 2008 - 14:25
Ok grazie mille per la dritta !
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
ven 18 apr 2008 - 14:11
Aggiornamento...se faccio il remove della tabpage me la toglie, ma poi non riesco più ad aggiungerla....
mi fate un esempio di codice per favore ?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 18 apr 2008 - 14:36
628_AddRemoveTab.zip
ecco un esempio in c#.
come vedi premendo i 2 bottoni aggiungi e togli le 2 tab presenti nel tabcontrol principale...non spariscono
Come fai tu a non trovarle piu'? confronta con questo esempio e poi magari posta il tuo codice...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
ven 18 apr 2008 - 19:32
no ok nel pomeriggio ho provato di nuovo e funziona...grazie e scusate
Torna su
Stanze Forum
Elenco Threads
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 !