salve a tutti,

ho esteso la classe textbox per limitare il numero dei caratteri che possono essere inseriti in questo nuovo oggetto che ho chiamato numberbox.
Praticamente in questo nuovo oggetto uno può scrivere solo numeri e ho fatto in questo modo.

private void NumberBox_KeyPress(object sender, KeyPressEventArgs kpe)
{
if (
kpe.KeyChar.ToString() != "0" &&
kpe.KeyChar.ToString() != "1" &&
kpe.KeyChar.ToString() != "2" &&
kpe.KeyChar.ToString() != "3" &&
kpe.KeyChar.ToString() != "4" &&
kpe.KeyChar.ToString() != "5" &&
kpe.KeyChar.ToString() != "6" &&
kpe.KeyChar.ToString() != "7" &&
kpe.KeyChar.ToString() != "8" &&
kpe.KeyChar.ToString() != "9"

)
{

kpe.Handled = true;
}
}

ora, in questo modo non posso "digitare" il tasto "back" e non riesco a inserirlo nella restrizione per farlo digitare.


Come posso fare?

Grazie in anticipo delle risposte.
Il tasto in questione è \b ossia backspace.
Se ti può venir utile io su mobile faccio così

protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);

NumberFormatInfo numberFormatInfo =
CultureInfo.CurrentCulture.NumberFormat;
string decimalSeparator =
numberFormatInfo.NumberDecimalSeparator;
string groupSeparator = numberFormatInfo.NumberGroupSeparator; string negativeSign = numberFormatInfo.NegativeSign;
string keyInput = e.KeyChar.ToString();

if (Char.IsDigit(e.KeyChar))
{
// Digits are OK
}
else if (keyInput.Equals(decimalSeparator) ||
keyInput.Equals(groupSeparator) ||
keyInput.Equals(negativeSign))
{
// Decimal separator is OK
}
else if (e.KeyChar == '\b')
{
// Backspace key is OK
}
// else if ((ModifierKeys & (Keys.Control | Keys.Alt)) != 0) // {
// // Let the edit control handle control and alt key combinations
// }
else if (allowSpace && e.KeyChar == ' ')
{
}
else
{
// Swallow this invalid key and beep
e.Handled = true;
// MessageBeep();
}
}


non credo sia molto differente in winform

byez

imperugo
Microsoft MVP
myblog : http://www.tostring.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.