USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Key Press
Ivo
BARRETOS
SP - BRASIL
Postada em 07/03/2006 10:54 hs            
Não esqueça de configurar a propriedade do form , keypreview = true
     
carol
não registrado
Postada em 07/03/2006 10:58 hs   
mas isso não faz ir p os campos direto né?
 
     
Cµssa
não registrado
Postada em 07/03/2006 14:19 hs   
naum....
você terá que colocar isso em cada txt do form.
isso serve também para vc limitar o que o usuário vai digitar no campo...
digamos que, por motivos de segurança, vc quer que o usuário digite apenas números no campo de idade, logo vc faria assim:

Private Sub txtIdade_KeyPress(KeyAscii As Integer)
If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or _
(KeyAscii = vbKeyBack) Then
  Exit Sub
Else
  Beep
  KeyAscii = 0
End If
End Sub

A cada tecla digitada o programa verifica se é número ou se é o backspace. Se for, ele deixa a digitação passar e continua o programa. Caso seja uma letra, por ex., ele irá beepar e naum digitará a tecla.

Espero ter ajudado.
     
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
Postada em 07/03/2006 20:48 hs            
Carol, vou aproveitar a "deixa", dos colegas e colocar uma dica trabalhosa que faço, e quem sabe algum colega me ensina de forma mais facil de fazer isto, olhe o exemplo que faço em campo Text completo:
Dim iTECLA As Integer   ' aqui nomeio uma váriavel
 
Private Sub Text1_GotFocus()
 Text1.BackColor = AZUL        ' deixo o fundo azul quando recebe o foco
 Text1.ForeColor = BRANCA     ' os caracteres em branco
 iTECLA = 0                          ' deixo a variável com valor 0
End Sub
 
Private Sub Text1_KeyPress(TK as Integer, Shift as Integer)
 If TK <> 13 and TK <> 27 and TK <> 32 Then  ' se diferente de ENTER, ESC,     'ESPAÇO só verifica
  If iTECLA = 0 Then      ' verifica se é a primeira tecla digitado no texto
   Text1 = ""                ' apaga todo o conteúdo evitando o BackSpace pelo usuário
  End If
 End If
 iTECLA = 1        ' incrementa a variável para não apagar a digitação
End Sub
 
Private Sub Text1_KeyDown(TK as Integer, Shift As Integer)
 If tk = 13 Then          ' se digitou o ENTER
  Proximo.SetFocus      ' vai para o foco determinado
  Exit Sub
 Else
  If TK = 27 Then         ' se digitou ESC
   FOCOANTERIOR.SetFocus    ' volta ao foco anterior
   Exit Sub
 End If
End Sub
 
Private Sub Text1_LostFocus()
 Text1.BackColor = cor anterior
 Text1>ForeColor = cor anterior   ' retorna as cores originais
 Text1 = Ucase$(Text1)   ' Transforma em maiuscula (opcional)
End Sub
 
Bom lógico que crio um array de controles e coloco o indices, mas apesar de funcionar bem, é trabalhoso.
 
Aceito sugestões de melhoramentos.
 
Obrigado a todos.
 
 
 
 
 
     
G. Bittencourt
não registrado
Postada em 08/03/2006 07:06 hs   
Olá Carol!!! Tem um jeito bem fácil de fazer o que você quer. Primeiro você deve configurar a propriedade KeyPreview, do Form, como True e depois no evento KeyPress do mesmo Form coloque o seguinte código:
 
Private Sub Form_KeyPress(KeyAscii As Integer)
'Rotina para dar um "TAB" quando o "ENTER" for pressionado
    If KeyAscii = 13 Then
        SendKeys "{TAB}"
        KeyAscii = 0
    End If
End Sub
 
Eu faço assim e não tenho problemas!!!
Espero ter ajudado!!!
tentei... Emoções
Um abraço!!!
     
Página(s): 3/3     « ANTERIOR  


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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