灰色文本框,直到由复选框启用

时间:2016-12-06 08:07:12

标签: powershell checkbox textbox

我正在创建一个脚本,我希望用户标记某些复选框以启用txtbox。

当用户按下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()

1 个答案:

答案 0 :(得分: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