在powershell studio中清除checkedboxlist中的复选框
我有一个巨大的checkedboxlist,我已经创建了它,我需要一个按钮来清除所有选中的项目。以下是我所拥有的:在powershell studio中清除checkedboxlist中的复选框,powershell,checkboxlist,Powershell,Checkboxlist,我有一个巨大的checkedboxlist,我已经创建了它,我需要一个按钮来清除所有选中的项目。以下是我所拥有的: $btnResetGroups_Click = { foreach ($chkbox in $chklistGroups) { $chkbox.ClearSelected() # I tried to do $chkbox.Checked = $false but it doesn't recognize 'checked' as a proper
$btnResetGroups_Click = {
foreach ($chkbox in $chklistGroups)
{
$chkbox.ClearSelected() # I tried to do $chkbox.Checked = $false but it doesn't recognize 'checked' as a property
}
# $chklistGroups.ClearSelected()
}
这有什么不起作用的原因吗
编辑:这是填充复选框列表的代码:
$formPTINewUserCreation_Load={
Import-Module ActiveDirectory
# read in the XML files
[xml]$NewUserXML = Get-Content -LiteralPath \\papertransport.com\files\UserDocuments\mneis\Code\XML\NewUserTest.xml
# popoulate the checklist with the groups from active directory
$AD_ResourceGroups = Get-ADGroup -filter * -SearchBase "OU=Resource Groups,OU=Groups,OU=Paper Transport,DC=papertransport,DC=com"
$AD_ResourceGroups | ForEach-Object { $chklistGroups.Items.Add($_.name) }
}
为确保在单击按钮时取消选中每个复选框,代码必须在包含复选框的容器中循环
$btnResetGroups_Click = {
# get the container (in this case it looks like a list box)
$myCheckBoxes = $myListBox.Items
# next loop through each checkbox in the array of checkbox objects
foreach ($chkbox in $myCheckBoxes)
{
$chkbox.Checked = $false
}
}
这将确保容器中的每个复选框都设置为false。从GUI的样式来看,我假设这是WPF而不是Winforms。它不应该是
$chkbox.Checked=$false
?因为$chkbox
是您想要更改的对象,所以在我发布它时意识到这是一个错误。我已经改变了它,但它仍然不起作用。当我键入$chkbox
时,它不会将checked识别为$chkbox
的属性。知道为什么吗?接下来要检查的是确保$chklistGroups
中包含正确的内容。如果未正确填充,则可能导致此问题如果填充正确,则我将继续键入每个复选框的名称并执行checkbox.Checked=$false
。我个人从来没有使用过foreach循环来取消选中复选框,但理论上它应该仍然可以工作,我实际上希望有一种不用foreach的方法。你可能会认为有一种方法可以清除整个内容,而不必循环遍历列表中的每一项,特别是因为这个列表很容易包含300多项。+1我同意@Jason Snell的观点。按照您最初发布的方式@Matt it将不起作用,但只要您的$chklistGroups
被正确填充,Jason的绝对是正确的。这让我感到奇怪,因为这应该会起作用。我的$chklistGroups
确实填充正确,这就是为什么我对清除所有这些问题感到困惑的原因。您如何填充$chklistGroups
?@Matt可能是一个范围问题,请尝试foreach($script:chklistGroups中的chkbox)
。您正在运行哪个版本的PowerShell和CLR($PSVersionTable
)?我正在运行5.1.14393.1480版本的PowerShell和CLR版本4.0.30319.42000