仅用十进制数(正数和负数)验证文本框
本文关键字:验证 文本 十进制数 | 更新日期: 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
}
}
这个答案有很多其他的方法来实现这一点:我如何使一个文本框只接受数字?