Jump to content
DJ DeviL

Desabilitar TabControl

Recommended Posts

Olá...como eu faco pra desabilitar uma das abas de um tab control.....tipo...se eu usar tabname.enabled = false ele desabilita os campos e tal...mais a aba continua acessivel...eu gostaria de deixa ela inacessivel.....e tipo...tem como ''esconder'' uma aba??? pq se fizer tabname.visible = false nao acontece nada :PobrigadoGabriel

Share this post


Link to post
Share on other sites

Uma aba (TabPage) de um TabControl é um objeto independente, portanto você pode simplesmente fazer ...

 

TabControl1.TabPages.Remove(TabPage1)

... para removê-lo do TabControl e, quanto quiser voltar com ele, bastará fazer:

 

TabControl1.TabPages.Add(TabPage1)

Certo? ;)

 

Graymalkin

Share this post


Link to post
Share on other sites

Eh...tudo funcionou quase perfeito....quando eu removo, ele some....mais quando eu mando ele aparecer denovo (TabControl1.TabPages.Add(TabPage1)), a tab volta VAZIA...heheheoq eu faco?

Share this post


Link to post
Share on other sites

Eh...tudo funcionou quase perfeito....quando eu removo, ele some....mais quando eu mando ele aparecer denovo (TabControl1.TabPages.Add(TabPage1)), a tab volta VAZIA...heheheoq eu faco?

Aqui não acontece isso não... eu lembro que testei com uma label nela e esta voltava exatamente no mesmo lugar. Os controles dentro da aba são gerados dinâmicamente? Eu não testei isso.Abraços,Graymalkin

Share this post


Link to post
Share on other sites

Entao...sei lah o q tava acontecendo, mais agora ele some e aparece normalmente....a unica coisa q eu gostaria de saber eh, como eu faco pra coloca-lo na mesma posicao q estava (no caso, eu quero desabilitar a 2 aba [index 1] e depois, habilita-la novamente no memso lugar), porque quando eu removo e adiciono, ele entra na ultima posicao

Share this post


Link to post
Share on other sites

Guarde a posição dela na lista de abas antes de removê-la...

 

Dim pos As Integer = TabControl1.TabPages.IndexOf(TabPage1)		TabPage1.Tag = pos		TabControl1.TabPages.Remove(TabPage1)

... e depois utilize o método Insert, que permite você especificar a posição, passando para ele a posição anterior dela:

 

TabControl1.TabPages.Insert(TabPage1.Tag, TabPage1)

Certo? ;)

 

Graymalkin

Share this post


Link to post
Share on other sites

esse ''Insert''...nao existe.....

Ops... existe, mas só na .NET Framework 2.0, o que significa que você teria que estar utilizando o Visual Studio 2005.

As alternativas para o método Insert() na .NET Framework 1.0 ou 1.1 seriam: 1 - remover todas as abas para um array ou uma ArrayList e depois ao colocá-las de volta colocar a determinada aba na posição desejada; 2 - ou, criar uma nova aba e sair deslocando os itens (abas) a partir da posição desejada, de forma que a mesma fique livre para ser definida como a aba que tinha saído. Esta última maneira seria melhor, mas é necessário fazer para saber se funciona na prática.

 

Abraços,

 

Graymalkin

Share this post


Link to post
Share on other sites

Cara......se eu instalar o ms .net framework 2.0, mesmo usando o vs 2003, teoricamente, nao deveria funcionar????pq eu instalei o framework 2.0 mais nao funciona o evento .insert

Share this post


Link to post
Share on other sites

Cara......se eu instalar o ms .net framework 2.0, mesmo usando o vs 2003, teoricamente, nao deveria funcionar????

Não, e foi isso que eu disse na primeira frase do meu post anterior. Para utilizar a .NET Framework 2.0 você precisa do Visual Studio 2005.Abraços,Graymalkin

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.