我正在尝试使用Sapien Powershell Studio通过Windows Powershell gui为IP地址输入创建一个文本框(例如000.000.000.000)。
我查看了Maskedtextbox,但它显示得不是很好(_),我无法限制输入范围(最多255)。
我也研究过NumericUpDown,如果我可以隐藏箭头,那将是完美的,因为它让我能够限制范围并设置为仅数字。
如果无法对输入进行重写,我想只有4个带有MaxLength = 3的文本框和一个“TextChanged”事件验证,如果它不是数字或在范围内,则擦除文本。
我是否忽略了一种更容易/更好的方式?
答案 0 :(得分:2)
不要试图用你的文本框太聪明,允许你的用户输入IP地址而不必乱拨上/下箭头等,让他们以自由形式输入。他们会为此感谢你。
然后,在提交您的表单或退出该字段后,尝试通过执行以下操作来解析IP地址:
$ip_address = $null
$a = [System.Net.IPAddress]::TryParse($ip_address_to_validate, [ref]$ip_address)
if ($ip_address -ne $null)
{
# It's valid
}
else
{
# Not valid - display an error message on form
}
答案 1 :(得分:1)
Personaly我同意@Kev,但我使用正则表达式。
$regip=[regex]"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
$regip.IsMatch("10.1.1.10")