USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (ActiveX/Controles/DLL)

Título da Dica:  Controles dinâmicos
Postada em 10/1/2005 por kerplunk         
Há duas maneiras de se criar controles dinâmicos, a verdadeira e a "injambrada". Na verdadeira defina um objeto com o tipo de controle que você deseja criar:

Dim WithEvents lbl as Label

Depois esse controle deve ser lido no formulário(ou módulo, ou seja o que for)

Set lbl = frmFiltro.Controls.Add("VB.Label", "Label1")

Nesse ponto o controle já está criado, e pode ser acessado diretamente.

lbl.Visible = True

Essa é a primeira propriedade a ser setada, pois objetos dinâmicos são invisíveis por default. Nesse método, você pode criar apenas um controle para cada variável declarada, pois a propriedade Index é somente leitura em run-time.

A outra maneira, é você colocar todos os componentes que você quer copiar dentro de um form, torná-los invisíveis e Setar a propriedade Index para "0". Isso cria uma array desse controle que pode ser lido quantas vezes quiser, bastando incrementar a propriedade index. A vantagem desse método é que se pode colocar vários controles do mesmo tipo no mesmo form. Por exemplo para criar dois campos de data:

dim ProximoIndice as Integer
ProximoIndice=0
Load txtData(ProximoIndice) 'Onde txtData é um controle maskeditbox, com a propriedade index setada em "0"
With txtData
     .Mask = "##/##/####"
     .Top = xxx
     .Left = xxx
     .Visible = True
End With

ProximoIndice = ProximoIndice + 1
Load txtData(ProximoIndice) 'Onde txtData é um controle maskeditbox, com a propriedade index setada em "0"
With txtData
     .Mask = "##/##/####"
     .Top = xxx
     .Left = xxx
     .Visible = True
End With

E era isso. Qualquer dúvida E-mail para jfk@novosistema.com.br
 


CyberWEB Network Ltda.    © Copyright 2000-2021   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página