CAMPO DINAMICO NO FORM VB "URGENTE"

USUARIO.EXCLUIDOS 14/12/2006 21:00:27
#190055
Boa noite

estou precisando montar uma tela dinà¢mica, onde vou precisar criar os campos em tempo de
execução, já conseguí criá-los usando o método CreateObject, o problema é que pecisarei
fazer validacoes destes campos usando os eventos de validate, lost_focus e etc, gostaria de saber se tem como criar os eventos automaticamente também


Obrigado
USUARIO.EXCLUIDOS 14/12/2006 21:15:14
#190059
Resposta escolhida
Colega, existem duas formas:

Uma é com o Addcontrol:

Private WithEvents SeuTxt As TextBox
'WithEvents significa que ele terá eventos associados
'Ex:
Private Sub SeuTxt_LostFocus()
MsgBox SeuTxt.Text
End Sub


Pra criar o campo:
Private Sub Form_Load()
Set SeuTxt = Me.Controls.Add("VB.TextBox", "SeuTxt_c", Me)
With SeuTxt
.Move 10, 10, 1000, 500
.Visible = True
.Text = "Texto padrão"
End With
End Sub


A outra forma, é vc criar um controle tipo array no form (basta colocar a propriedade index = 0 ou outro valor), e usar o evento assim:
Private Sub SeuTxt_LostFocus(Index As Integer)
MsgBox SeuTxt.Text,, "Campo: " & Index
End Sub


Pra criar mais:
Private Sub Form_Load()
Load SeuTxt(SeuTxt.UBound + 1)
SeuTxt(SeuTxt.UBound).Top = SeuTxt(SeuTxt.UBound - 1).Height + SeuTxt(SeuTxt.UBound - 1).Top + 100
End Sub



Qualquer dúvida poste...flw
USUARIO.EXCLUIDOS 14/12/2006 21:29:47
#190062
show de resposta
USUARIO.EXCLUIDOS 14/12/2006 21:42:08
#190063
Citação:

LVFIOROT escreveu:
show de resposta



^^

vlw
USUARIO.EXCLUIDOS 19/12/2006 19:07:47
#191015
Matioli

Deu certo cara, o problema agora é que de alguma forma precisarei setar a variavel SeuTxt, com o campo que estiver ativo no momento, consegui colocando no lostFocus set seutxr = me.activecontrol, porémquando preciso do evento GotFocus por exemplo, já nao dá certo, e outra, se por algum motivo eu clicar num botao por exemplo, qdo clico com o mouse em outro Text que nao seja aquele que está setado os eventos nao serão disparados.

Será que tem alguma forma mais correta de setar o campo corrente?

ps. estou tentando fazer usando o me.controls.add, pois nao quero criar um campo em tempo de projeto, e sim todos em tempo de execuçao, na verdade o que estou fazendo seria um mini VB, mas com funcionalidades bem restritas dentro da minha aplicacao.
Tópico encerrado , respostas não são mais permitidas