2016-12-06 56 views
0

我創建一個腳本,我希望用戶標記某些複選框,以啓用txtboxes。灰色的文本框,直到啓用複選框

當用戶按下chexbox時,它旁邊的文本框將被啓用。如果他們不這樣做,那麼他們不能插入文本。

現在它不工作,有人想法如何改變它? 感謝您的幫助!

這裏是我的腳本與複選框和文本框的一部分:

#creating the whole form 
$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "Ofir`s script" 
$objForm.Size = New-Object System.Drawing.Size(480,240) 
$objForm.StartPosition = "CenterScreen" 


#This creates the TextBox1 
$objTextBox1 = New-Object System.Windows.Forms.TextBox 
$objTextBox1.Location = New-Object System.Drawing.Size(300,40) 
$objTextBox1.Size = New-Object System.Drawing.Size(140,150) 
$objTextBox1.TabIndex = 3 
$objTextBox1.text = Dsp.z 
$objForm.Controls.Add($objTextBox1) 

#This creates a checkbox for textbox1 
$objDsp2Checkbox = New-Object System.Windows.Forms.Checkbox 
$objDsp2Checkbox.Location = New-Object System.Drawing.Size(280,40) 
$objDsp2Checkbox.Size = New-Object System.Drawing.Size(150,20) 
$objDsp2Checkbox.TabIndex = 0 
$objForm.Controls.Add($objDsp2Checkbox) 

#changing the file name 
if ($objDsp2Checkbox.Checked -eq $true) 
{ 
$objTextBox1.Enabled = $true 
} 

elseif ($objDsp2Checkbox.Checked -eq $false) 
{ 
$objTextBox1.Enabled = $false 
}  


#makes the form appear on top of the screen 
$objForm.Topmost = $True 

$objForm.Add_Shown({$objForm.Activate()}) 
[void] $objForm.ShowDialog() 
+0

[我寫了一些代碼,不工作:\ *污點\ *](https://ericlippert.com/2014/03/05/how- to-debug-small-programs /)有一些指導,說明如何解決原因,以及如何提出更具體和可回答的問題。 (並非所有適用於Powershell,我承認) – TessellatingHeckler

+0

謝謝,我明白你的觀點。即時通訊新的這個網站和PowerShell,所以我真的不知道我在這裏做錯了什麼。試圖使其更清楚。 – ofribouba

回答

0

您需要分配的代碼位使能/禁用文本框的複選框對象上的事件處理程序。最有可能的是Click事件。

$objDsp2Checkbox_OnClick = { 
    if ($objDsp2Checkbox.Checked -eq $true) 
    { 
     $objTextBox1.Enabled = $true 
    } 
    elseif ($objDsp2Checkbox.Checked -eq $false) 
    { 
     $objTextBox1.Enabled = $false 
    } 
} 
$objDsp2Checkbox.Add_Click($objDsp2Checkbox_OnClick) 

http://social.technet.microsoft.com/wiki/contents/articles/25911.how-to-add-a-powershell-gui-event-handler-part-1.aspx

https://msdn.microsoft.com/en-us/library/system.windows.forms.textbox(v=vs.110).aspx

+1

'$ objTextBox1.Enabled = $ objDsp2Checkbox.Checked'不需要if/else –

+0

謝謝!這很好。 – ofribouba