Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kazzx

evento KeyPress

Mensagens Recomendadas

kazzx

viva,

eu queria colocar dentro do mesmo evento, o KeyPress, várias situações diferentes.

ou seja, tenho um formulário que contém várias caixas de texto e algumas delas só podem aceitar números outras só podem aceitar letras.

experimentei usar isto:

    Private Sub txts_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnome.KeyPress, cp1.KeyPress, cp2.KeyPress
        'Aqui não sei o que colocar
    End Sub

eu cá dentro já disse que determinadas caixas de texto só podiam aceitar números e outras letras.

mas na verdade, ou todas aceitam números e só números, ou todas aceitam letras e só letras.

posto isto, vi-me obrigado a fazer isto:

Private Sub txtletras_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnome.KeyPress, cp1.KeyPress, cp2.KeyPress
        If Char.IsNumber(e.KeyChar) Then
            e.Handled = True
        End If
    End Sub

Private Sub txtnumeros_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txttelemovel.KeyPress, cp1.KeyPress, cp2.KeyPress
        If Not Char.IsNumber(e.KeyChar) And Not Convert.ToInt32(e.KeyChar) = Keys.Back And Not Convert.ToInt32(e.KeyChar) = Keys.Delete Then
            e.Handled = True
        End If
    End Sub

acho que me fiz entender.

cumps.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sergiofer

viva

Para aceitar só numeros, tenho o seguinte código a funcionar:

     If ((e.KeyChar < "0") Or (e.KeyChar > "9") And (e.KeyChar <> Chr(8))) Then
            Beep()
            e.Handled = True
       End If

Penso que podes fazer uma coisa identica para as letras, alterando só os limites.

espero ter ajudado

Sérgio

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
duduml

If ((e.KeyChar < "a") Or (e.KeyChar > "z") And (e.KeyChar <> Chr(8)))  Then
            Beep()
            e.Handled = True
End If

esse dá...mas e se quiseres inserir no conjunto a tecla backspace??? para apagar letras...

cumps


"use windows, você merece!"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
duduml

já resolvi a minha questão assim:

Private Sub numeroTextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles numeroTextBox1.KeyDown
        If e.KeyCode = Keys.Back Then
            If numeroTextBox1.Text = Nothing Then Exit Sub
            numeroTextBox1.Text = numeroTextBox1.Text.Remove(numeroTextBox1.Text.Length - 1, 1)
            ' por o cursor no fim...
        End If
    End Sub

num entanto, como faço para por o cursos no fim???

cumps


"use windows, você merece!"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kazzx

viva,

acho que não me fiz entender.

eu sei o código para permitir apenas letras e apenas números, mas não consigo pôr os dois códigos no mesmo evento, o KeyPress. é isso que não consigo.

quando coloco os dois códigos, o das letras e dos números, depois as caixas de texto por exemplo a do telemóvel só aceita números, a caixa de texto nome que só deveria aceitar letras também só aceita números.

entendem ? :S

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sergiofer

Boas

Penso que podes tentar verificar qual delas é que tem o focus, de depois selleccionares qual a condição

Vou testar também

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
duduml
viva,

acho que não me fiz entender.

eu sei o código para permitir apenas letras e apenas números, mas não consigo pôr os dois códigos no mesmo evento, o KeyPress. é isso que não consigo.

quando coloco os dois códigos, o das letras e dos números, depois as caixas de texto por exemplo a do telemóvel só aceita números, a caixa de texto nome que só deveria aceitar letras também só aceita números.

entendem ? :S

cumps

desculpa a minha ignorancia...

mas porque não pois o código em cada evento keypress de todas text box??

CUMPS


"use windows, você merece!"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmaster

Ou basta criares 2, depois só tens relacionar a textbox com o evento que lhe pretendes dar.

No teu caso crias um evento para quando são números e outro para quando são letras, depois no evento de cada um indicas qual é que vai ser tratado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.