Nas*_*ine 12 .net c# maskedtextbox
如何使用MaskedTextBox防止用户输入无效的IP地址?(我希望它的行为与Windows一样).
Kak*_*shi 17
试试这个:
IPAddress ipAddress;
if (IPAddress.TryParse(maskedTextBoxY.Text, out ipAddress))
{
//valid ip
}
else
{
//is not valid ip
}
Run Code Online (Sandbox Code Playgroud)
注意:要使用它,您需要导入System.Net命名空间:
using System.Net;
Run Code Online (Sandbox Code Playgroud)
Har*_*lse 16
比其他答案简单得多:
使用System.Net.IPAddress和System.Windows.Forms.MaskedTextBox
设置MaskedTextBox的以下属性:
MaskedTextBox.Mask = ###.###.###.###
MaskedTextBox.ValidatingType = typeof(System.Net.IPAddress);
Run Code Online (Sandbox Code Playgroud)
每当文本框验证时,都会引发事件MaskedTextBox.TypeValidationCompleted.事件参数显示以下内容:
收到此事件后,您可以决定是使用该值还是通知用户该值有什么问题.
最好使用 REGEX 来验证用户输入。下面是一个例子:
string pattern = @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b";
string ip1 = "192.168.0.1";
string ip2 = "302.0.0.1";
Regex.IsMatch(ip1, pattern); // returns true
Regex.IsMatch(ip2, pattern); // returns false
Run Code Online (Sandbox Code Playgroud)