首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CheckedListBox结果

CheckedListBox结果
EN

Stack Overflow用户
提问于 2016-01-24 19:40:52
回答 1查看 1.8K关注 0票数 0

我在Powershell中有一个CheckedListBox。当我选中一些复选框时,文本结果是空的。当我选择第二个复选框时,将显示第一个复选框结果文本。

我对CheckedListBox使用了以下代码:

代码语言:javascript
复制
# 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

 })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-24 21:31:02

GetItemChecked($i)只返回在事件处理程序运行后引发事件的项检查的正确结果。

您可以对该项目进行inspect the event arguments for the new value

代码语言:javascript
复制
$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
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34980543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档