ADICIONAR E REMOVER TABPAGE EM TEMPO DE EXECU?ÃO

CHDSSANTOS 12/11/2015 18:19:22
#453812
Pessoal, boa tarde!!!

Antes de qualquer coisa, deixa eu avisar, não sei nada de VB.NET, estou com o VBE 2008 na maquina e assim que voltar de viagem, vou baixar o VS Community.

Alguém poderia, por favor, me orientar como clonar uma TabPage com todos os seus controles do original em VB.NET e como posso remove-los posteriormente?
Estou queimando os neurônios pra tentar resolver uma situação.... Com o codigo abaixo consigo criar o TabPage, mas não consegui remove-lo, no entanto, não gera erro.

Este funciona corretamente:

 Dim frm As New frm1
Dim novaTabPage As TabPage = frm.TabPage2

novaTabPage.Name = [Ô]Teste[Ô] & (Me.TabControl1.TabPages.Count + 1)
Me.TabControl1.TabPages.Add(novaTabPage)




Dentro de cada TabPage criada há um botão para fecha-la com o codigo:

Me.TabControl1.TabPages.Remove(Me.TabControl1.SelectedTab)



De novo... perdoem minha ignorância em VB.NET, até ontem programava/Programo só em VBA e por tabela em VB6 e pra ser sincero, nunca precisei usar o TabControl.
Minha ideia é criar algo + ou - como a imagem, onde o usuário possa abrir novas janelas para trocar mensagens entrou outros usuários em paginas individuais.
JABA 12/11/2015 18:38:43
#453813
Resposta escolhida
https://msdn.microsoft.com/pt-br/library/system.windows.forms.tabcontrol.tabpagecollection.remove(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2
JABA 12/11/2015 18:45:41
#453814
Você tem que tomar cuidado em apontar para a TabControl do formulário correto. Quando você cria um instância do form(Dim frm As New frm1), você está criando um novo formulário em memória, e esse não tem nada a ver com o que está ativo.
CHDSSANTOS 16/11/2015 17:00:43
#453998
JABA, boa tarde

Segui seu conselho, mas estou me deparando com outro problema agora... Ao criar os objetos (Textboxs) em tempo de execução consigo ajustar sua largura, mas a altura fica no padrão... Não altera nem para mais ou para menos... Tentei vários códigos pesquisando na net e nada até agora. Pode ajudar?

Este foi o ultimo código que tentei.

tb.Size() = New System.Drawing.Size(100, 100)
tb.Location = New System.Drawing.Point(90, 25)
JABA 16/11/2015 17:39:05
#454000
Se eu não me engano, a altura do TextBox é baseado na Fonte da letra. Ou seja, aumente a Fonte que acho que funcionará.
CHDSSANTOS 18/11/2015 09:52:49
#454095
Jaba,

Funciona mesmo... Mas preciso que a fonte volte ao padrão e quando coloco o código para voltar o textbox volta também.
JABA 18/11/2015 12:45:27
#454100
Acho que pra contornar isso você teria que colocar a propriedade MultiLine = true em cada TextBox e depois aplicar a maior fonte possível neles, assim você poderia manipular a altura deles livremente. O único problema disso é que se o usuário der [Ô]enter[Ô], abrirá uma barra de rolagem, daí você teria que tratar isso também.

Uma outra forma mais elegante é herdar o controle TextBox e sobrescrever a propriedade AutoSize. A diferença é que agora você teria que usar uma instância dessa classe em vez da classe padrão, e colocar o AutoSize dela como False.

Public Class TextBoxEx
Inherits TextBox

<EditorBrowsable(EditorBrowsableState.Always), Browsable(True),
DefaultValue(True)> _
Public Overrides Property AutoSize() As Boolean
Get
Return MyBase.AutoSize
End Get
Set(ByVal value As Boolean)
MyBase.AutoSize = value
End Set
End Property
End Class

Tópico encerrado , respostas não são mais permitidas