【问题标题】:validate textbox with only decimal numbers (positive and negative)验证仅包含十进制数字(正数和负数)的文本框
【发布时间】:2014-06-06 09:34:12
【问题描述】:

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

【问题讨论】:

标签: c# textbox decimal


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    相关资源
    最近更新 更多