如何只允许输入 0-99.99 之间的数字
本文关键字:0-99 之间 数字 输入 许输入 | 更新日期: 2023-09-27 18:36:25
如何限制用户在文本框中输入除 0 到 99.99 之间的值以外的任何内容
我的代码似乎有效,但是,它将允许输入任何数字。它只允许数字和一个点一次。但它仍然允许大于 99.99 的值
在我的代码下面:
private void InputMargin_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
// allow only number and dot
if ( ! char.IsControl(e.KeyChar)
&& ! char.IsDigit(e.KeyChar)
&& e.KeyChar != '.'
|| (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
)
{
//e.Handled = true;
double margin;
double.TryParse((sender as TextBox).Text, out margin);
if (margin >= 0 && margin <= 99.99)
{
e.Handled = true;
}
else
{
e.Handled = false;
}
}
}
catch
{
e.Handled = false;
}
}
为什么不使用 NumericUpDown 控件,并将 DecimalPlaces 属性设置为 2。
无需像在文本框上那样添加任何其他编码。
为什么
使用'&&e.KeyChar!='.,因为这样做不接受'..只是删除它,因为你也使用了(发件人作为文本框)。Text.IndexOf('.')> -1 这只接受整个文本字段中的一个 '.,因此 Right if 语句将是。
if ( ! char.IsControl(e.KeyChar)
&& ! char.IsDigit(e.KeyChar)
|| (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
)
{
//Your Code
}