Ajuda C# Apenas escrever numeros numa textbox

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 :)
 
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 :)

Adiciona ao if a lógica para permitir o KeyChar do Delete ;)
 
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!");

}
}
 
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
 
Back
Topo