我正在尝试在PowerShell中创建一个包含动态内容的GUI窗口。我需要:
重要提示:我无法使用列表或数据网格。
我有以下代码,但它仍然只返回最后一项值。
Invoke-Expression
我也尝试了Invoke-Expression -Command "`$thisButton.Add_Click({`$x=`"$($item)`";`write-host $x})"
,但它没有返回预期结果:
myMum
或者更好的想法如何获取按钮被点击的详细信息,因为按钮的数量是随机的?
答案 0 :(得分:0)
问题是add_Click()
内的脚本块现在包含对$thisbutton
的引用,它在运行时将被foreach循环中的最后一个值替换 - 这是预期的行为。
你可以在这里做两件事之一。
$thisButton.Text
(或$item
)值:# Piping to Out-Null has zero effect here, just remove it
$thisButton.Add_Click({Write-Host $thisButton.Text}.GetNewClosure())
$thisButton.Add_Click({param($Sender,$EventArgs) Write-Host $Sender.Text})