• 0
Sign in to follow this  
Halfar

Evento Sendo Executado Em Momento Errado

Question

Eu tenho uma caixa de texto e um checkbox.

Eu executo um codigo na caixa de texto no evento OnChange. A cada caractere que o usuario digita na caixa de texto, dispara o evento onChange e executa uma rotina.

Ocorre que quando o usuario digita na caixa de texto alguma coisa, alem de executar a rotina, absurdamente, o VB executa tambem o evento OnClick do checkbox. Mas isto ocorre somente na seguinte situacao:

Usuario clica no checkbox e é executada uma rotina no evento Onclick do checkbox. Isto está correto.

Em seguida usuario digita um caracter na caixa de texto no evento Onchange. Ai o programa le o evento onClick do checkbox. Isto está errado. Então gostaria de saber porque o VB faz isto, está executando o evento onClick sem o usuário ter clicado no checkbox.

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Disparar o evento "change" a cada caracter digitado esta correto.Caso não seja uma caracteristica desejada, crie uma rotina para somente executar a sua função após o usuario terminar de digitar o texto completo na caixa de texto.

Quanto ao checkBox, coloque o código que você esta usando para entender o que esta acontecendo.

Share this post


Link to post
Share on other sites
  • 0

Eu disparo o evento onChange a cada caracter porque é um sistema de pesquisa, o usuario digita a letra A, então o sistema busca todos os registros que comecem com a letra A, depois o usuario digita letra N, então o sistema busca todos os registros com An, e assim sucessivamente.

Ocorre que se o usuario antes de digitar qualquer coisa no evento OnChange, ele clicar em algum check box, e depois digitar alguma coisa no evento onChange da caixa de texto, ele ao invés de executar o evento onChange, ele primeiro executará o evento onClick do checkbox.

Eu já tinha visto este tipo de comportamento em outros programas que fiz, geralmente para arrumar esta coisa, crio variaveis que desviam o fluxo do programa para evitar estes tipos de erro.

Mas é que estou com uma curiosidade muito grande em saber porque o VB faz isto. Será que é um bug do VB? Voce nunca viu este tipo de coisa? Até parece que é só comigo que ocorre isto...

Explicando melhor o ocorrido:

1 - Usuario clica no evento onClick do checkbox. É disparada corretamente o evento onClick deste checkbox. Até aqui tudo bem.

2 - Em seguida usuario digita algum caracter na caixa de texto que contem o evento OnChange. O VB dispara o evento onClick do checkbox. isto está errado. Deveria disparar o evento OnChange da caixa de texto. Depois que ele executa o evento onClick do checkbox é que ele executa o evento onChange do textbox.

Share this post


Link to post
Share on other sites
  • 0

Olha, eu não consegui fazer aparecer este problema.

Mas você pode tentar usar os eventos KeyDown,KeyPress ou KeyUp para trabalhar com entrada de dados pelo teclado.É o mais correto.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this