我想知道我应该在对象中重载哪个方法,在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),但我更喜欢将实例添加到列表中,以便稍后检索它。
提前致谢。
答案 0 :(得分:2)
您需要告诉他列表框哪个属性包含项目的显示友好名称。
替换:
$vms_listbox = New-Object System.Windows.Forms.ListBox
使用:
$vms_listbox = New-Object System.Windows.Forms.ListBox
$vms_listbox.DisplayMember = "Name"