我在Powershell中有一个CheckedListBox。当我选中一些复选框时,文本结果是空的。当我选择第二个复选框时,将显示第一个复选框结果文本。
我对CheckedListBox使用了以下代码:
# Code
$ListView = New-Object System.Windows.Forms.CheckedListBox
$ListView.Location = New-Object System.Drawing.Size(10,40)
$ListView.Size = New-Object System.Drawing.Size(533,325)
$ListView.CheckOnClick = $True
$ListView.Add_ItemCheck({
for ($i = 0; $i - ($ListView.Items.Count-1); $i++)
{
if ($ListView.GetItemChecked($i))
{
$s = $s + $ListView.Items[$i].ToString();
}
}
Write-host $s
})发布于 2016-01-24 21:31:02
GetItemChecked($i)只返回在事件处理程序运行后引发事件的项检查的正确结果。
您可以对该项目进行inspect the event arguments for the new value:
$ListView.Add_ItemCheck({
param($sender,$e)
$s = ""
for ($i = 0; $i -le ($ListView.Items.Count-1); $i++)
{
# Check if $i is the index of the item we just (un)checked
if($e.Index -eq $i)
{
# Inspect the new checked-state value
if($e.NewValue -eq 'Checked')
{
$s += $ListView.Items[$i]
}
}
elseif ($ListView.GetItemChecked($i))
{
# Item is already checked
$s += $ListView.Items[$i]
}
}
Write-host $s
})https://stackoverflow.com/questions/34980543
复制相似问题