PowerShell System.Windows.Forms禁用ListBox中的某些项

时间:2014-01-21 15:34:04

标签: powershell listbox listboxitem

有没有办法在PowerShell中禁用System.Windows.Forms.ListBox中的一些项目?

即。 ListBox包含:

item-a
item-b
item-c
item-d
item-e

我喜欢这样做,item-citem-e无法选择。谢谢!

2 个答案:

答案 0 :(得分:1)

简答:ListBox控件中没有 native 禁用/启用项目。

我认为有两种方法可以做到:

  1. 拥有一系列您不想选择的项目。处理点击事件时,请检查项目是否是您不想选择的项目,并且不执行任何操作。
  2. 更简单的方法:创建自定义控件。请参阅:How to Disable Selected Item in List Box

答案 1 :(得分:0)

# Events
$listBox.add_selectedindexchanged({
    foreach ($item in $listbox.SelectedItems) {
        if (***condition for being unselectable***) {
            $listbox.SelectedItems.Remove($item)
            break
        }
    }
}

每次用户选择一个项目时,此事件都会在“选择项目”列表中检查“无法选择的”项目(使用条件指定)。如果找到,它们将从列表中删除。当foreach循环在已更改的列表上运行时,包含“ break”是为了避免非终止错误。如果一次选择了多个无法选择的项目,则此解决方案可能不适用于Shift单击多选,但可以修改(可能)。