1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda C# Apenas escrever numeros numa textbox

Discussão em 'Programação' iniciada por koKaZz, 19 de Abril de 2012. (Respostas: 3; Visualizações: 8687)

  1. koKaZz

    koKaZz Power Member

    Boas,

    Tenho isto num programa para apenas deixar escrever numeros em algumas textbox:

    private void textBox_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (!char.IsDigit(e.KeyChar))
    {

    e.Handled = true;
    MessageBox.Show("Este campo apenas aceita numeros!");

    }
    }

    O problema é que desta maneira não deixa apagar, como é que faço uma exepção para deixar usar a tecla apagar?

    Cumps :)
     
  2. paulo.correia

    paulo.correia Banido

    Adiciona ao if a lógica para permitir o KeyChar do Delete ;)
     
  3. franklopez

    franklopez Power Member

    tens de descobrir o ascii dos cursores e do backsapce e del.

    a minha sugestão quando o caracter não for numérico podes escrever o ascii dele num objecto de texto para veres qual é o ascii dos cursores e dos backspace e del, e depois na programação alteras o teu if para:


    private void textBox_KeyPress(object sender, KeyPressEventArgs e)
    {

    int asc = (int) e.KeyChar;

    if (!char.IsDigit(e.KeyChar) && asc != Valor do Del && asc != Valor do backsapce && (...) )
    {

    e.Handled = true;
    MessageBox.Show("Este campo apenas aceita numeros!");

    }
    }
     
  4. koKaZz

    koKaZz Power Member

    Boas,

    Muito obrigado :)
    Ficou assim:

    private void textBox_KeyPress(object sender, KeyPressEventArgs e)
    {

    int asc = (int) e.KeyChar;

    if (!char.IsDigit(e.KeyChar) && asc != 08 && asc != 127)
    {

    e.Handled = true;
    MessageBox.Show("Este campo apenas aceita numeros!");

    }
    }

    Cumps
     

Partilhar esta Página