在Powershell中编辑生成的对象的属性

时间:2018-08-07 21:26:59

标签: winforms powershell

我正在尝试创建8个标签,并编辑它们的.Text属性。

我已经搜索了一段时间,但无法在线找到任何东西。不过,我可能搜索不正确。

这是我要做的事的一个例子:

for ($i=1; $i -le 8; $i++)
{
    New-Object -TypeName System.Windows.Forms.Label | New-Variable -name "testing$i"
    $testing$($i).Text = 'text of label'
}

我觉得我已经很接近了,但是我已经没有想法了。我想知道有人是否有资源或建议。

谢谢!

2 个答案:

答案 0 :(得分:1)

使用收藏集

$labels = 1..8 | foreach-object { New-Object -TypeName System.Windows.Forms.Label }

$labels | foreach-object { $_.Text = 'text of label' } 

答案 1 :(得分:1)

TessellatingHeckler's answer向您展示了另一种方法,该方法不需要声明单个变量(每个标签一个),通常更可取。

如果您确实希望使用标签专用变量,则:

for ($i=1; $i -le 8; $i++)
{
    New-Object -TypeName System.Windows.Forms.Label | New-Variable -name testing$i
    Set-Variable -Name testing$i  -Value 'text of label'
}

就像您使用New-Variable cmdlet通过动态构造的名称​​ 创建 变量一样,您需要Set-Variable来< em>设置它(分配给它)。

作为分配的LHS,必须在前缀$后加上 literal 变量名,这就是$testing$($i)的原因。失败。