ADICIONAR E REMOVER TABPAGE EM TEMPO DE EXECU?ÃO
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:
Dentro de cada TabPage criada há um botão para fecha-la com o codigo:
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.
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.
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
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.
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.
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)
Se eu não me engano, a altura do TextBox é baseado na Fonte da letra. Ou seja, aumente a Fonte que acho que funcionará.
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.
Funciona mesmo... Mas preciso que a fonte volte ao padrão e quando coloco o código para voltar o textbox volta também.
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.
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