|
|
|
|
|
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
|
|
|
|
|