Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kazzx

evento KeyPress

Recommended Posts

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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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!"

Share this post


Link to post
Share on other 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!"

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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!"

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.