Что бы я ни изменил в $ List2, всегда меняйте свойства в $ List1. Есть ли решение для этого?
Да, решение состоит в том, чтобы создать новый экземпляр ListBox
:
$List1 = New-Object System.Windows.Forms.ListBox
$List1.Location = New-Object System.Drawing.Size(10,10)
$List1.Size = New-Object System.Drawing.Size(280,310)
$List2 = New-Object System.Windows.Forms.ListBox
$List2.Size = $List1.Size
$List2.Location = New-Object System.Drawing.Size(350,10)
Обратите внимание, что $List2.Size = $List1.Size
безопасно, потому что Size
является структурой, а структуры копируются при присваивании
Если у вас есть много свойств для ссылки, вы можете заключить значения общих свойств в хеш-таблицу для передачи в New-Object -Property
:
$ListBoxDefaultProperties = @{
Location = New-Object System.Drawing.Size (10,10)
Size = New-Object System.Drawing.Size (280,310)
BackColor = 'Beige'
DisplayMember = 'SomePropertyName'
# etc...
}
$List1 = New-Object System.Windows.Forms.ListBox -Property $ListBoxDefaultProperties
$List2 = New-Object System.Windows.Forms.ListBox -Property $ListBoxDefaultProperties
$List3 = New-Object System.Windows.Forms.ListBox -Property $ListBoxDefaultProperties