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

时间:2014-05-15 01:13:30

标签: c# textbox decimal

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

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

我怎样才能做到这一点?

谢谢,

********* ********* EDIT ++

 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;
          }
}

1 个答案:

答案 0 :(得分:0)

各种数字类型的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
   }
}

这个答案还有很多其他方法可以帮助你:How do I make a textbox that only accepts numbers?