可以约束表单数据 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 个非数字组成,但是您当然可以在事件处理程序块中进行任何类型的测试