Pergunte aqui
0

CurrentController para controles da caixa de dialog

perguntadas 2019-06-18 18:05:51 +0200

imagem do gravatar de Júnio Vieira

updated 2020-05-19 16:29:46 +0200

imagem do gravatar de Schiavinatto

Preciso saber o nome do controle ativo. Por exemplo:

Tenho um controle com nome "TextField1" num formulário qualquer, gostaria que quando esse controle recebesse o foco a variável "nomecontrole" armazenasse o nome do controle "TextField1".

Sei que para saber o nome de um controle basta utilizar o comando: nome do formulário.Model.nomedocontrole.Name conforme exemplo: Dialog1.Model.TextField1.Name.

No excel usa-se o comando abaixo:

Screen.ActiveControl.Name

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

2 Respostas

1

respondidas 2020-05-16 21:45:35 +0200

imagem do gravatar de rogerlegal

updated 2020-05-17 00:30:05 +0200

imagem do gravatar de Schiavinatto

Aqui está

Sub YourMacro(oEvent as object)
Dim CtrlName as String
CtrlName = oEvent.Source.Model.Name
Print "Calling control is named: """ & CtrlName & """"
end sub
editar assinalar como ofensivo Excluir Link mais

Comentários

Fantástico, muito obrigado Gilberto, esse comando vai me abrir um leque de opções.

imagem do gravatar de Júnio VieiraJúnio Vieira ( 2020-05-19 16:15:55 +0200 )editar

Ola @Júnio Vieira , a resposta foi do @rogerlegal, eu só formatei a resposta.

imagem do gravatar de SchiavinattoSchiavinatto ( 2020-05-19 16:29:19 +0200 )editar

Poxa, fiquei tão feliz que nem prestei atenção, muito obrigado @rogerlegal, já estava com mais de um ano que aguardava essa resposta, agora terei um maior controle em meus formulários.

imagem do gravatar de Júnio VieiraJúnio Vieira ( 2020-05-21 14:42:56 +0200 )editar
0

respondidas 2019-06-18 22:37:33 +0200

imagem do gravatar de Conrado

updated 2019-06-18 22:38:02 +0200

Segue @Júnio Vieira

Só não coloque ao pegar foco, pois vai entrar em loop infinito.

Sub PegarNomeControle

    Dim txtField as Object
    Dim txtFieldName as String

    txtField = Dialog1.GetControl("txtField1")
    txtFieldName = txtField.Model.Name

    MsgBox txtFieldName

End Sub
editar assinalar como ofensivo Excluir Link mais

Comentários

Agradeço sua resposta @Conrado, mas como expliquei na pergunta esse comando de pegar o nome do controle já conheço, a questão é como saber o nome do controle que está com foco, ou seja, não sei o nome do controle, quero capturar o nome do controle ativo.

imagem do gravatar de Júnio VieiraJúnio Vieira ( 2019-06-19 13:56:01 +0200 )editar

Neste caso não deveria utilizar CurrentContoller?

imagem do gravatar de ConradoConrado ( 2019-06-19 14:57:10 +0200 )editar

@Conrado o CurrentController utilizo para ThisComponent, preciso de um comando similar a ele, porém para formulário.

imagem do gravatar de Júnio VieiraJúnio Vieira ( 2019-06-19 16:31:27 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-06-18 18:05:51 +0200

Lidas: 50 vezes

Última atualização: May 17