2017-08-08 50 views
0

我创建了PowerShell中的Windows形式,我然后用PS2EXE图形用户界面,使一个可执行...我用这部分挣扎,因为它依赖于用户输入很多是正确的:可能会限制表单数据PowerShell?

$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个字符的长度,从特定的字符开始,等等)。这有可能吗?

回答

0

您可以设置$textBox.MaxLength将文本框限制为一定数量的字符。您还可以使用与文本框关联的事件(如KeyUp)来创建逻辑以检查条目的开始以及包含的内容,并在此时通知用户它们的条目有问题。

+0

非常好,这正是我需要的,谢谢! –

0

添加的事件处理程序上的文本框的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个非数字,但你当然可以在事件处理程序块中做任何类型的测试