如何限制用户在文本框中输入任何内容,而不是介于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;
}
}
答案 0 :(得分:0)
为什么不在将DecimalPlaces属性设置为2的情况下使用NumericUpDown控件。
无需在文本框中添加任何其他编码。
答案 1 :(得分:0)
你为什么要使用`&amp;&amp; e.KeyChar!=&#39;。&#39;因为这样做不接受&#39;。&#39; .just删除这个因为你也使用过(发送者为TextBox).Text.IndexOf(&#39;。&#39;)&gt; -1这只接受一个&#39;。&#39;在整个文本字段中,所以Right if语句将是。
if ( ! char.IsControl(e.KeyChar)
&& ! char.IsDigit(e.KeyChar)
|| (e.KeyChar == '.' && (sender as TextBox).Text.IndexOf('.') > -1)
)
{
//Your Code
}