我正在寻找一种方法来验证输入到文本框中的数据,该文本框用于获取输入的值并将其用于数学公式。我已经创建了一个用户只能输入数字(0-9)和字符“。”,“,”和“-”来写小数和负数的函数,但我的问题是:当用户输入如下内容时: “..-”、“,.”、“-.” 程序失败。你可以帮帮我吗?提前致谢。我留给你验证我如何拥有它的功能,直到这一分钟
public static void SoloNumeros(KeyPressEventArgs V)
{
if (Char.IsDigit(V.KeyChar))
{
V.Handled = false;
}
else if (Char.IsControl(V.KeyChar))
{
V.Handled = false;
}
else if (Char.IsControl(V.KeyChar))
{
V.Handled = false;
}
else if (V.KeyChar.ToString().Equals("."))
{
V.Handled = false;
}
else if (V.KeyChar.ToString().Equals(","))
{
V.Handled = false;
}
else if (V.KeyChar.ToString().Equals("-"))
{
V.Handled = false;
}
else
{
V.Handled = true;
MessageBox.Show("Por favor, introduzca solo nùmeros.");
}
}
您可以使用 Tryparse 方法。在你的情况下 bool 方法(因为 double 接受它的解析层“。”)
它会是这样的:
Tryparse 是一个尝试将第一个字符串参数转换为数字的函数。
如果 tryparse 成功,out 参数将加载转换的值,函数的结果将为“true”
但是如果 Tryparse 失败,out 参数将为 null 并且函数的结果将为 false
现在我看到了另一个问题,那就是你试图逐个字符地验证,
您将无法以任何方式执行此操作来确定您的结果是否为数字,最好使用文本框的所有文本而不是逐个字符对其进行 tryparse。
制作下面的代码可以帮助您解决问题,因为您的 OnlyNumbers 静态方法制作下面的代码可以更简化您的代码
为防止执行操作时数字错误,并防止具有以下特征的数字通过代码3..4,请执行以下代码。
如果数字正确或不正确,此代码将返回 true 或 false,在您的情况下,使用双精度会很有帮助,如果您希望实时执行此操作,我建议您制作一个允许您验证的正则表达式数字不是重复的字符。
迈克,非常感谢您的回答,我不知道 double.TryParse 方法,这对我有很大帮助,我已经找到了解决问题的方法,创建以下方法:
//类验证
我在程序中的“计算”按钮的单击事件中使用此方法。我有点少这样