MaskedTextBox 中的 IP 地址?
如何使用 MaskedTextBox 来防止用户输入无效的 IP 地址? (我希望它的行为就像 Windows 一样)。
How can I use a MaskedTextBox to prevent the user from entering an invalid IP address? (I want it to behave just like the Windows one).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
比其他答案简单得多:
使用 System.Net.IPAddress 和 System.Windows.Forms.MaskedTextBox
设置 MaskedTextBox 的以下属性:
每当文本框验证时,都会引发事件 MaskedTextBox.TypeValidationCompleted。
事件参数显示以下内容:
需要收到此事件后您可以决定是否使用该值或通知用户该值有什么问题。
Much simpler than the other answers:
Use System.Net.IPAddress and System.Windows.Forms.MaskedTextBox
set the following properties of the MaskedTextBox:
whenever the text box is validating, event MaskedTextBox.TypeValidationCompleted is raised.
The event arguments show the following:
Upon receipt of this event you can decide whether to use the value or notify the user what is wrong with the value.
试试这个:
注意:要使用它,您需要导入
System.Net
命名空间:Try this:
note: to use it, you need import the
System.Net
namespace:最好使用 REGEX 来验证用户输入。这是一个例子:
It is better to use REGEX to validate user input. Here's an example:
将掩码设置为:
###.###.###.###
将显示如下:
Set the mask to:
###.###.###.###
Will display like this:
我制作了一个模仿 Windows 的 IP 屏蔽文本框。
具有相同的宽度、高度,防止用户输入>255个值、跳框等等......
如果您仍然需要它并想尝试一下,可以在这里:
https://github.com/RuvenSalamon/IP -MaskedTextBox
(我不知道这算不算自我推销,但它是开源的,所以我认为还可以。)
I made an IP masked textbox that mimicks the Windows one.
Has the same width, height, prevents users from entering >255 values, jumps boxes, etc, etc...
If you still need it and want to try it out it's here:
https://github.com/RuvenSalamon/IP-MaskedTextBox
(I don't know if this counts as self promotion but it's open-source so I reckon it's ok.)
这个问题还没有复杂的解决方案。我认为@HaraldDutch 的答案是最接近的,但它并不能阻止带有空格字符的输入。
使用附加指令:
通常可以解决问题,但更复杂的是使用 Parse 方法实现自己的自定义数据类型。
其中 regexpr 是验证 IP 的特定表达式。之后它可以用作 ValidatingType:
There is no complex solution for this question yet. I think @HaraldDutch answer is closest, but it is not prevet from input with space character.
Using additional instruction:
generaly solved problem, but more complex is to implement own custom data typewith Parse method.
Where regexpr is specific expresion to validate IP. After that it can be use as ValidatingType: