我有兴趣让用户至少检查一个选项。它有多少并不重要,但至少需要检查一个。如果没有,则需要生成错误。
有没有办法用GroupBox
或其他类型的容器做到这一点?
这是我的复选框代码:
$groupBox1 = New-Object System.Windows.Forms.GroupBox
$groupBox1.Location = New-Object System.Drawing.Point(8, 120)
$groupBox1.Size = New-Object System.Drawing.Size(120, 144)
$groupBox1.TabIndex = 0
$groupBox1.TabStop = $false
$groupBox1.Text = 'Options:'
$checkBox1 = New-Object System.Windows.Forms.CheckBox
$checkBox1.Location = New-Object System.Drawing.Point(8, 8)
$checkBox1.TabIndex = 1
$checkBox1.Text = 'Banana'
$checkBox2 = New-Object System.Windows.Forms.CheckBox
$checkBox2.Location = New-Object System.Drawing.Point(8, 40)
$checkBox2.TabIndex = 2
$checkBox2.Text = 'Apple'
答案 0 :(得分:1)
使用if-test可以轻松完成,例如:
if($checkBox1.Checked -or $checkBox2.Checked) {
#Continue work
}
什么时候检查?
点击按钮?在按钮的click-eventhandler中添加if-test。
在按钮被选中之前,按钮是否应被禁用(灰显)? 将if-test和启用/禁用按钮代码添加到checked-eventhandler复选框。
如果在单击按钮时选中此项,并且您只想生成错误,则:
if(-not($checkBox1.Checked -or $checkBox2.Checked)) {
#Throw exception
Write-Error No checkboxes checked
#Error popup only
[System.Windows.Forms.MessageBox]::Show("Check minimum one checkbox!",
"ERROR",
[System.Windows.Forms.MessageBoxButtons]::OK,
[System.Windows.Forms.MessageBoxIcon]::Error) | Out-Null
}