国际.TryParse(String, out Number) 在按钮单击事件中只工作一次

本文关键字:事件 一次 单击 工作 String TryParse out 国际 Number 按钮 | 更新日期: 2023-09-27 18:34:52

我有一个文本框,我正在使用它给最终用户提交他们的电话号码。我希望能够在用户每次点击提交按钮时评估文本框。我的代码在最终用户第一次单击按钮时工作得很好。如果他们必须修复文本框中的错误并再次单击该按钮,则TryParse不会再次计算"数字",并且"数字"设置为 0。有人可以告诉我我已经多次使用TryParse吗?

string NumberLength = TextBoxPhoneNumber.Text;
int Number;
if (int.TryParse(NumberLength, out Number))
{
    //I parsed the number out. Now lets get the length
    NumberLength = Number.ToString(CultureInfo.InvariantCulture);
    if (NumberLength.Length > 10)
    {
        LblInfo.Visible = true;
        LblInfo.ForeColor = Color.Red;
        LblInfo.Text = "Phone number can not be longer than 10 digits!";
        boolIsValid = false;
    }
    else if (NumberLength.Length < 10)
    {
        LblInfo.Visible = true;
        LblInfo.ForeColor = Color.Red;
        LblInfo.Text = "Phone number can not be shorter than 10 digits!";
        boolIsValid = false;
    }
}

国际.TryParse(String, out Number) 在按钮单击事件中只工作一次

尝试在

if 的末尾添加一个 else 以再次关闭错误消息,如下所示:

string NumberLength = TextBoxPhoneNumber.Text;
int Number;
if (int.TryParse(NumberLength, out Number))
{
    //I parsed the number out. Now lets get the length
    NumberLength = Number.ToString(CultureInfo.InvariantCulture);
    if (NumberLength.Length > 10)
    {
        LblInfo.Visible = true;
        LblInfo.ForeColor = Color.Red;
        LblInfo.Text = "Phone number can not be longer than 10 digits!";
        boolIsValid = false;
    }
    else if (NumberLength.Length < 10)
    {
        LblInfo.Visible = true;
        LblInfo.ForeColor = Color.Red;
        LblInfo.Text = "Phone number can not be shorter than 10 digits!";
        boolIsValid = false;
    }
    else
    {
        LblInfo.Visible = false;
        boolIsValid = true;
    }
}
else
{
    LblInfo.Visible = true;
    LblInfo.ForeColor = Color.Red;
    LblInfo.Text = "Phone number can only contain digits!";
    boolIsValid = false;
}

为什么不使用正则表达式方法?

 using System.Text.RegularExpressions;

 Regex rgx = new Regex("'d");
 if(rgx.IsMatch(number))
 {
     //True
 }

如果第二次输入的字符串是数字类型,TRYPARSE 会将其转换为整数值,但如果输入的值是非数字的,那么该方法将重新运行 0。 请在文本框中进行一些验证以仅接受数字字符串!!