Diego Magno
não registrado
|
|
Postada em 14/11/2008 11:18 hs
(ficou extenso mas é bem interessante e acho que outros tem essa mesma dúvida, mas não achei no fórum e nem em outros que procurei)
Tenho o seguinte problema:
No VB6 caso você coloque um & (e comercial) ao lado esquerdo de uma letra da propriedade Caption de um Command (Botão bem utilizado no VB6) ele cria uma espécie de Atalho para o Botão (Alt + Letra do lado Esquerda do Caption). Este Atalho funciona super Bem, pois ele executa os Eventos Lost_Focus, Validate e qualquer outro caso o seu Focus esteja em outro componente. Meu problema vem ao criar Atalhos diferenciados! Eu coloco no Form_KeyDown (evento do form de pegar a tecla pressionada) uma função para verificar o KeyCode. Caso este KeyCode for o Atalho que eu quero eu chamo a Sub do Botão referente (exemplo: Private Sub Command1_Click). O problema esta que caso o Focus esteja em outro componente ele não Válida o mesmo, não passa no Lost_Focus, não passa no Validate, nada. Ou seja, se eu estou em um campo de mascara de Data (dd/mm/yyyy) e o usuário digita 70/90/5678 ele não irá validar o campo e irá executar a função do atalho chamada. Minhas principais duvidas são: Existe uma maneira de eu chamar o Click do Command da mesma maneira que o & (e comercial faz) ou alguma maneira dele validar o campo que esta em foco quando o atalho é chamado. Já tentei colocar um .SetFocus no Command para ver se ele dava o Lost_Focus ou o validate mas ele ainda sim não valida. Alguem sabe de algo que possa me ajudar?
Obs.: No Menu Editor existe um ShortCut que funciona igual o & (e comercial) no Command. A diferença é que no Menu você consegue colocar qualquer tecla e no Caption com & você precisa ter a letra no Caption e deve utilizar o Alt, meu bojetivo é utilizar F1, F2 , F3.... F12 validando o campo que o foco está. Eu faço sim varias verificações no click mas algumas como a validção da data eu faço no validate ou no lost_focus do proprio campo sendo desnecessario revalida-lo no click. Caso não houver outra solução acho que terei que passar as validações todas para um Função, o que deixaria o Form meio pobre usabilidade pois o usuário somente descobre que digitou algo inválido em alguim campo somente quando ele vai tentar gravar e o essencial seria ele saber disso assim que o campo der validate ou lost_focus.
Desde já Obrigado pela Atenção! 
|
|
|