国际.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;
}
}
尝试在
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。 请在文本框中进行一些验证以仅接受数字字符串!!