Jump to content

evento KeyPress


kazzx
 Share

Recommended Posts

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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!"

Link to comment
Share on other sites

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!"

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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!"

Link to comment
Share on other sites

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.

Link to comment
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
 Share

×
×
  • Create New...

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.