可以约束表单数据 powershell 吗?
Possible to constrain form data powershell?
我在 Powershell 中创建了一个 Windows 表单,然后我使用 PS2EXE-GUI 制作可执行文件...我正在努力处理这部分,因为它在很大程度上依赖于用户输入的正确性:
$form = New-Object System.Windows.Forms.Form
$form.Text = "'Enter ID number for the Machine"
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = "CenterScreen"
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox)
并且我想限制可以输入哪些数据(必须是8个字符长度,以特定字符开头等)。有这种可能吗?
您可以设置 $textBox.MaxLength
将文本框限制为一定数量的字符。您还可以使用绑定到文本框的事件,例如 KeyUp
来创建逻辑来检查条目的开始和包含的内容,并在此时通知用户他们的条目有什么问题。
为 TextBox 上的 TextChanged
事件添加一个事件处理程序,并在输入发生变化时对其进行评估:
$textBox.add_TextChanged({
param($sender)
if($sender.Text -match '^\d{6}\D{2}$'){
# Input looks good, allow submission
$submitButton.Enabled = $true
}
else {
$submitButton.Enabled = $false
}
})
在上面,我们测试输入字符串由 6 个数字和 2 个非数字组成,但是您当然可以在事件处理程序块中进行任何类型的测试
我在 Powershell 中创建了一个 Windows 表单,然后我使用 PS2EXE-GUI 制作可执行文件...我正在努力处理这部分,因为它在很大程度上依赖于用户输入的正确性:
$form = New-Object System.Windows.Forms.Form
$form.Text = "'Enter ID number for the Machine"
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = "CenterScreen"
$textBox = New-Object System.Windows.Forms.TextBox
$textBox.Location = New-Object System.Drawing.Point(10,40)
$textBox.Size = New-Object System.Drawing.Size(260,20)
$form.Controls.Add($textBox)
并且我想限制可以输入哪些数据(必须是8个字符长度,以特定字符开头等)。有这种可能吗?
您可以设置 $textBox.MaxLength
将文本框限制为一定数量的字符。您还可以使用绑定到文本框的事件,例如 KeyUp
来创建逻辑来检查条目的开始和包含的内容,并在此时通知用户他们的条目有什么问题。
为 TextBox 上的 TextChanged
事件添加一个事件处理程序,并在输入发生变化时对其进行评估:
$textBox.add_TextChanged({
param($sender)
if($sender.Text -match '^\d{6}\D{2}$'){
# Input looks good, allow submission
$submitButton.Enabled = $true
}
else {
$submitButton.Enabled = $false
}
})
在上面,我们测试输入字符串由 6 个数字和 2 个非数字组成,但是您当然可以在事件处理程序块中进行任何类型的测试