检查单选按钮后的Windows.Forms加载元素

时间:2015-06-02 13:07:40

标签: winforms powershell

我正在尝试使用PowerShell创建Windows.Form,其中只有在选中特定单选按钮时才会显示一组复选框。

1 个答案:

答案 0 :(得分:1)

您可以使用CheckBox属性控制Visible对象的可见性:

Now you see it

Now you don't

Add-Type -AssemblyName System.Windows.Forms
$Form = New-Object System.Windows.Forms.Form

#region ConditionalCheckBoxes
# Create a bunch of CheckBoxes and set their visibility to hidden 
$CheckBox1 = New-Object System.Windows.Forms.CheckBox
$CheckBox1.Text = "Option 1"
$CheckBox1.Visible = $false
$CheckBox1.Top = 50
$CheckBox2 = New-Object System.Windows.Forms.CheckBox
$CheckBox2.Text = "Option 2"
$CheckBox2.Visible = $false
$CheckBox2.Top = 75
$CheckBox3 = New-Object System.Windows.Forms.CheckBox
$CheckBox3.Text = "Option 3"
$CheckBox3.Visible = $false
$CheckBox3.Top = 100
#endregion

#region RadioToggleGroup
$RadioToggleGroup = New-Object System.Windows.Forms.Panel
#endregion

#region RadioToggleOn
$RadioToggleOn = New-Object System.Windows.Forms.RadioButton
$RadioToggleOn.Text = "Show"
$RadioToggleOn.Left = 10
# Make sure checkboxes are made visible when clicking the radio button
$RadioToggleOn.Add_Click({
    $CheckBox1.Visible = $true
    $CheckBox2.Visible = $true
    $CheckBox3.Visible = $true
})
$RadioToggleGroup.Controls.Add($RadioToggleOn)
#endregion

#region RadioToggleOff
$RadioToggleOff = New-Object System.Windows.Forms.RadioButton
# Make sure checkboxes are hidden again
$RadioToggleOff.Text = "Hide"
$RadioToggleOff.Top  = 25
$RadioToggleOff.Left = 10
$RadioToggleOff.Add_Click({
    $CheckBox1.Visible = $false
    $CheckBox2.Visible = $false
    $CheckBox3.Visible = $false
})
$RadioToggleGroup.Controls.Add($RadioToggleOff)
#endregion

$CheckBox1,$CheckBox2,$CheckBox3,$RadioToggleGroup |% {$Form.Controls.Add($_)}
$Form.ShowDialog()

同样,您可以将所有CheckBox个对象放在GroupBoxPanel中,并控制其可见性