CAMPO DINAMICO NO FORM VB "URGENTE"
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
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
Colega, existem duas formas:
Uma é com o Addcontrol:
Pra criar o campo:
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:
Pra criar mais:
Qualquer dúvida poste...flw
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
show de resposta
Citação:LVFIOROT escreveu:
show de resposta
^^
vlw
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.
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