所以我在PowerShell中处理一个简单的用户界面。非常类似于这篇文章: Powershell - How to invoke a checkbox windows with multiple choice
问题是,我有更多的选择可供选择,而不仅仅是3.例如,假设我有10个。这是我当前的问题代码:
注意第43-68行。
https://gist.github.com/preciselyprecise/89a202f928b2e70ea925439f61db9e56
我想在第29-42行做类似于注释的代码块。问题是我不确定如何将FOR循环中的变量$ i与$ checkBox#变量组合。我看到的另一个可能的选择是,我可以组合一个字符串“checkBox”并简单地将$ i连接到结尾;问题是我不知道如何使FOR循环将该解决方案解释为一个条件而不是一个字符串。
非常感谢任何帮助!请记住,我是PowerShell和StackOverflow的新手,所以如果我违反规则或做错了什么,请说出来:)。
答案 0 :(得分:1)
我还没有对此进行过测试,但如果您取出$s
变量,看起来您所评论的代码就会起作用。
for ($i=0; $i -le 11; $i++) {
$v = Get-Variable -Name "checkBox$i" -valueonly
if ($v.Checked) {
$listBox1.Items.add("Checkbox $i is checked")
}
else {
echo Question
}
}
但是,我可能建议将复选框存储在数组而不是编号变量中。像这样:
#make the array
$checkboxes = @()
1..11 | % {
$checkboxes += New-Object System.Windows.Forms.CheckBox
$checkboxes.Name = "CheckBox$_"
}
#and then get the values
foreach($checkbox in $checkboxes)
{
if($checkbox.Checked)
{
$listBox1.Items.add("$($checkbox.Name) is checked")
}
}