在winforms输入字段中允许退格

时间:2013-10-24 20:28:33

标签: c# .net winforms

我正在验证用户输入以仅接受数字

 private void txtEdition_KeyPress(object sender, KeyPressEventArgs e)
 {
    if ((int)e.KeyChar < 48 || e.KeyChar > 57)
        e.Handled = true;
 }

但这也禁用了此输入字段中的退格。如何允许退格?

1 个答案:

答案 0 :(得分:0)

您可以使用

if (!Char.IsNumber(e.KeyChar) && 
    !Char.IsControl(e.KeyChar))
{
    e.Handled = true;
}

Char.IsNumber表示Unicode字符是否被归类为数字
Char.IsControl指示指定的Unicode字符是否被归类为控制字符。

但是,这不会阻止复制/粘贴操作,因此当您需要在此文本框中键入数据时,仍需要使用某种TryParse验证输入