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:  Como acessar um controle/propriedade pelo nome
Postada em 9/9/2003 por Ð@®l@n            
Como fazer para acessar dinamicamente a propriedade de um controle, recebendo apenas em runtime o nome da propriedade que se deseja acessar? Se você usa o VB6, isso é fácil, porque ele possui um comando que faz justamente isso: 'CallByName' (se você usa o VB5, dê uma olhada na dica "Como simular o comando 'CallByName' no VB5").

   Dim vntRetorno As Variant
   vntRetorno = CallByName(txtTeste, "Text", VbGet)

Mas, e se você quiser acessar também o controle dinamicamente, tendo o nome dele apenas em runtime? Aí, o comando 'CallByName' sozinho não basta, já que para usá-lo é necessário passar a referência do controle ao qual se deseja acessar a propriedade ou método. Como fazer, então?

Bem, você pode conseguir isso usando a propriedade 'Controls' de um Form:

   Dim vntRetorno As Variant
   vntRetorno = CallByName(Controls("txtTeste"), "Text", VbGet)

Você pode, ainda, estender esse conceito para poder acessar não apenas a propriedade/método de um controle dinamicamente, mas, acessar também um controle de qualquer Form dinamicamente:

   Dim oForm As VB.Form
   Dim vntRetorno As Variant

   For Each oForm In Forms
      If oForm.Name = "frmTeste" Then
         vntRetorno = CallByName(oForm.Controls("txtTeste"), "Text", VbGet)
         Exit For
      End If
   Next oForm

original: Lobo
 


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