C# WinForm 使用 TextChanged 事件检查特殊单词
C# WinForm Check special words with TextChanged Event
我需要检查文本框中的用户输入值,例如[127.0.0.1]、[255.255.255.128]。
输入值在 1~255 之间,但现在输入“.”时出现问题,数字和点是必需的。
我尝试在输入点时使用if条件,但是如果继续输入点会出错。
我该怎么办?
private void Check_Number(object sender, EventArgs e)
{
int intNumber = 0;
TextBox tempBox = sender as TextBox;
if (tempBox.Text != "")
{
if (tempBox.Text == ".") return;
intNumber = int.Parse(tempBox.Text);
if (intNumber >= 1 && intNumber <= 255)
{
return;
}
else
{
MessageBox.Show("Over the Upper Limit", "Error");
tempBox.Text = "";
}
}
}
}
您可以使用如下 IP 地址方法:
IPAddress IP;
var isIPAddress = IPAddress.TryParse("127.0.0.1",out IP);
if(isIPAddress)
{
//your logic
}
else
{
//your logic
}
你可以用.
分割tempBox.Text
作为分隔符,然后你可以比较每个值是否在一个范围内,
var isValidIPAddress = tempBox.Text.Split('.') //Split by '.'
.Select(Int32.Parse) //Convert it to integer
.All(intNumber => intNumber >= 1 && intNumber <= 255); //Check each int number is within given range
if(isValidIPAddress)
Console.WriteLine($"{tempBox.Text} is Valid IP address");
else
Console.WriteLine($"{tempBox.Text} is Not a Valid IP address");
在线试用:.net Fiddle
我需要检查文本框中的用户输入值,例如[127.0.0.1]、[255.255.255.128]。
输入值在 1~255 之间,但现在输入“.”时出现问题,数字和点是必需的。
我尝试在输入点时使用if条件,但是如果继续输入点会出错。 我该怎么办?
private void Check_Number(object sender, EventArgs e)
{
int intNumber = 0;
TextBox tempBox = sender as TextBox;
if (tempBox.Text != "")
{
if (tempBox.Text == ".") return;
intNumber = int.Parse(tempBox.Text);
if (intNumber >= 1 && intNumber <= 255)
{
return;
}
else
{
MessageBox.Show("Over the Upper Limit", "Error");
tempBox.Text = "";
}
}
}
}
您可以使用如下 IP 地址方法:
IPAddress IP;
var isIPAddress = IPAddress.TryParse("127.0.0.1",out IP);
if(isIPAddress)
{
//your logic
}
else
{
//your logic
}
你可以用.
分割tempBox.Text
作为分隔符,然后你可以比较每个值是否在一个范围内,
var isValidIPAddress = tempBox.Text.Split('.') //Split by '.'
.Select(Int32.Parse) //Convert it to integer
.All(intNumber => intNumber >= 1 && intNumber <= 255); //Check each int number is within given range
if(isValidIPAddress)
Console.WriteLine($"{tempBox.Text} is Valid IP address");
else
Console.WriteLine($"{tempBox.Text} is Not a Valid IP address");
在线试用:.net Fiddle