PowerShell Windows.Forms.ListBox,其中包含Items List中的对象

时间:2014-01-20 17:03:28

标签: powershell listbox

我想知道我应该在对象中重载哪个方法,在PowerShell Windows.Forms.ListBox中显示自定义文本字符串。我尝试了这个和其他变化但无济于事:

$vms_listbox = New-Object System.Windows.Forms.ListBox

$vms = Get-VM
#
# Overload ToSTring (I thought this would do)
#
$vms | Add-Member ScriptMethod ToString { $This.Name } -Force
$vms | Foreach {
    [Void]$vms_listbox.Items.Add($_)
}

我已尝试使用Add-Member ScriptProperty,CodeMethod,CodeProperty,但列表框仍未显示我打算显示的值,在本例中为虚拟机名称。

我可以使用虚拟名称添加到列表中:Items.Add($ _.Name),但我更喜欢将实例添加到列表中,以便稍后检索它。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您需要告诉他列表框哪个属性包含项目的显示友好名称。

替换:

$vms_listbox = New-Object System.Windows.Forms.ListBox

使用:

$vms_listbox = New-Object System.Windows.Forms.ListBox
$vms_listbox.DisplayMember = "Name"