2017-08-08 48 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個非數字,但你當然可以在事件處理程序塊中做任何類型的測試