仅用十进制数(正数和负数)验证文本框

本文关键字:验证 文本 十进制数 | 更新日期: 2023-09-27 18:03:20

我在c#中有一个文本框,用户只能输入十进制数(负数和正数)。

我不想使用MaskedText Box,我宁愿使用按键事件来验证输入。

我怎样才能做到这一点?

谢谢,

********* 编辑 ********* + +

 private void mytextbox_KeyPress(object sender, KeyPressEventArgs e)
        {
   if (((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != '.' &&e.KeyChar!='-'))
            {
                e.Handled = true;
            }
            if (e.KeyChar == '.')
            {
                if ((sender as TextBox).Text.IndexOf(e.KeyChar) != -1)
                    e.Handled = true;
            }
          if (e.KeyChar=='-' && (sender as TextBox).SelectionStart > 0)
          {
                  e.Handled = true;
          }
}

仅用十进制数(正数和负数)验证文本框

对于各种数字类型的TryParse将告诉您输入是否有效。例如,如果您想使用double:

private void OnKeyPress(...)
{
   double parsedValue = 0;
   if (double.TryParse(MyTextBox.Text, out parsedValue)
   {
       //Valid number entered, value in parsedValue
   }
   else
   {
       //Invalid number entered
   }
}

这个答案有很多其他的方法来实现这一点:我如何使一个文本框只接受数字?