我在PowerShell中有一个基本的表单UI。我有一系列3个单独的复选框,其中包含以下代码:
$CBlabel = New-Object System.Windows.Forms.Label
$CBlabel .Location = New-Object System.Drawing.Point(10,125)
$CBlabel .Size = New-Object System.Drawing.Size(280,20)
$CBlabel .Text = "Select a box:"
$form.Controls.Add($CBlabel )
$cb1Checkbox = New-Object System.Windows.Forms.Checkbox
$cb1Checkbox .Location = New-Object System.Drawing.Size(10,145)
$cb1Checkbox .Size = New-Object System.Drawing.Size(280,20)
$cb1Checkbox .Text = "Checkbox 1"
$form.Controls.Add($cb1Checkbox )
$cb2Checkbox = New-Object System.Windows.Forms.Checkbox
$cb2Checkbox .Location = New-Object System.Drawing.Size(10,165)
$cb2Checkbox .Size = New-Object System.Drawing.Size(280,20)
$cb2Checkbox .Text = "Checkbox 2"
$form.Controls.Add($cb2Checkbox )
$cb3Checkbox = New-Object System.Windows.Forms.Checkbox
$cb3Checkbox .Location = New-Object System.Drawing.Size(10,185)
$cb3Checkbox .Size = New-Object System.Drawing.Size(280,20)
$cb3Checkbox .Text = "Checkbox 3"
$form.Controls.Add($cb3Checkbox )
我想在此下方添加第4个复选框,其中显示"全选"如果可能的话,让它变得动态。如果我选择它,它会自动选择复选框1,2和3.如果我取消选中复选框2(或任何其他复选框),它会自动取消选择"全选"复选框。这可能吗?
答案 0 :(得分:1)
也许这是一个可能的解决方案?
import { AppRegistry } from 'react-native';
import App from './app/';
AppRegistry.registerComponent('airand', () => App);
对于取消选中“全选”复选框的请求,您需要为前三个复选框执行$cb4Checkbox = New-Object System.Windows.Forms.Checkbox
$cb4Checkbox.Location = New-Object System.Drawing.Size(x,y)
$cb4Checkbox.Size = New-Object System.Drawing.Size(x,y)
$cb4Checkbox.Text = "Checkbox 4 - Select All"
$cb4Checkbox.Add_Click({
If ($cb4CheckBox.Checked -eq $true){
$cb1Checkbox.Checked = $true
$cb2Checkbox.Checked = $true
$cb3Checkbox.Checked = $true
}
})
$form.Controls.Add($cb4Checkbox)
,这会导致“全选”复选框变为未选中状态。我相信更好的方法是编写一个函数,在单击前三个复选框中的任何一个时可以引用它,并取消选中“全选”复选框(见下文)
.add_click
答案 1 :(得分:1)
我一直在努力寻求一种更动态的方法,并提出了以下建议。创建一个GroupBox(在我的示例中为“ $ grpbox”名称)并将其添加到表单,将复选框添加到组框而不是表单:
$grpBox.Controls.Add($cb1Checkbox)
$cb4Checkbox.Add_Click({clkSelectAll})
function clkSelectALL() {
Foreach ($control in $grpbox.Controls){
$objectType = $control.GetType().Name
If ($objectType -like "CheckBox"){
$control.checked = $true
}
}
}
当然可以在函数中添加更多逻辑。