Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# maskedTextBox C中的IP地址验证#_C#_Ip Address - Fatal编程技术网

C# maskedTextBox C中的IP地址验证#

C# maskedTextBox C中的IP地址验证#,c#,ip-address,C#,Ip Address,我有C#中的申请表,我有以下代码从屏蔽文本框验证IP地址: private void MainForm_Load(object sender, EventArgs e) { IPAdressBox.Mask = "###.###.###.###"; IPAdressBox.ValidatingType = typeof(System.Net.IPAddress); IPAdressBox.TypeValidationCompleted += new TypeValidat

我有C#中的申请表,我有以下代码从屏蔽文本框验证IP地址:

private void MainForm_Load(object sender, EventArgs e)
{
    IPAdressBox.Mask = "###.###.###.###";
    IPAdressBox.ValidatingType = typeof(System.Net.IPAddress);
    IPAdressBox.TypeValidationCompleted += new TypeValidationEventHandler(IPAdress_TypeValidationCompleted);
}
void IPAdress_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
    if(!e.IsValidInput)
    {
        errorProvider1.SetError(this.IPAdressBox,"INVALID IP!");             
    }
    else
    {
        errorProvider1.SetError(this.IPAdressBox, String.Empty);
    }
}

在IPAdres_TypeValidationComleted函数中,如果语句为true,errorProvider1将闪烁并给出“无效IP”消息,否则它将消失。问题是,即使我输入了有效的IP地址,输入类型似乎总是无效的。

这可能是由于区域设置和小数。 您可以尝试此掩码,看看它是否解决了问题:

IPAdressBox.Mask = @"###\.###\.###\.###";

这可能是由于区域设置和小数。 您可以尝试此掩码,看看它是否解决了问题:

IPAdressBox.Mask = @"###\.###\.###\.###";
当您设置为一个类型时,在这种情况下,将使用
MaskedTextBox
的文本调用该类型的
Parse(string)
方法

如果您的区域性使用逗号作为分隔符,则带有输入的
123.123.123.123
将生成文本
123123

您可以在
ipAddress\u TypeValidationCompleted
中看到这一点:
e.Message
将包含“System.FormatException:指定了无效的IP地址”,因为IP地址通常不能包含逗号

如果将掩码更改为
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>,将圆点转义。

当设置为类型时,将使用
MaskedTextBox
的文本调用该类型的
解析(字符串)
方法

如果您的区域性使用逗号作为分隔符,则带有输入的
123.123.123.123
将生成文本
123123

您可以在
ipAddress\u TypeValidationCompleted
中看到这一点:
e.Message
将包含“System.FormatException:指定了无效的IP地址”,因为IP地址通常不能包含逗号

如果您将遮罩更改为
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/code>,避开这些点,它们将是。

遮罩应该是:

IPAdressBox.Mask = @"000\.000\.000\.000"; 
应在程序中添加:

IPAdressBox.ResetOnSpace = false;
面罩应为:

IPAdressBox.Mask = @"000\.000\.000\.000"; 
应在程序中添加:

IPAdressBox.ResetOnSpace = false;

这里有一个解决方案:[解决方案][1][1]:这里有一个解决方案:[解决方案][1][1]:谢谢!对于我的问题,这是一个很好的答案,但一般来说,这不是一个复杂的解决方案,因为如果在本例中键入127.0.0.1,它将返回带有空格字符的地址,如:127.0_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!对于我的问题,这是一个很好的答案,但一般来说,这不是一个复杂的解决方案,因为如果在本例中键入127.0.0.1,它将返回带有空格字符的地址,如:127.0_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。