PowerShell 查找 Forms.Panel 类型的所有变量
PowerShell Find all variables of the type Forms.Panel
在 PowerShell 中创建 .NET 窗体的过程中,我偶然发现了一个烦恼。我需要能够停用除必须显示的面板之外的所有面板的可见性。为此,搜索 System.Windows.Forms.Panel
类型的所有可用变量并将其状态设置为 $Panelx.Visible = $False
.
似乎很方便
各类变量举例:
[String]$Stuff = 'Blabla'
$Panel1 = New-Object System.Windows.Forms.Panel
$Panel2 = New-Object System.Windows.Forms.Panel
$Panel3 = New-Object System.Windows.Forms.Panel
$Button = New-Object System.Windows.Forms.Button
$TabControl = New-object System.Windows.Forms.TabControl
这给了我正确的结果,但我无法将 Visible
状态设置为 $False
Get-Variable | ? {$_.Value} | ? {(($_.Value).GetType().Name) -eq 'Panel'} | % {
$_.Visible = $false
}
怎么可能只列出类型面板的变量,然后放在$Panel.Visible = $False
上?
感谢您的帮助。
我认为问题在于 PSVariable 类型的 Get-Variable returns 对象,因此在其中定义了 Panel 对象。使用成员 属性 value
来检索它,像这样:
Get-Variable |where {$_.Value -is [System.Windows.Forms.Panel] } | % {$_.value.visible = $false}
在 PowerShell 中创建 .NET 窗体的过程中,我偶然发现了一个烦恼。我需要能够停用除必须显示的面板之外的所有面板的可见性。为此,搜索 System.Windows.Forms.Panel
类型的所有可用变量并将其状态设置为 $Panelx.Visible = $False
.
各类变量举例:
[String]$Stuff = 'Blabla'
$Panel1 = New-Object System.Windows.Forms.Panel
$Panel2 = New-Object System.Windows.Forms.Panel
$Panel3 = New-Object System.Windows.Forms.Panel
$Button = New-Object System.Windows.Forms.Button
$TabControl = New-object System.Windows.Forms.TabControl
这给了我正确的结果,但我无法将 Visible
状态设置为 $False
Get-Variable | ? {$_.Value} | ? {(($_.Value).GetType().Name) -eq 'Panel'} | % {
$_.Visible = $false
}
怎么可能只列出类型面板的变量,然后放在$Panel.Visible = $False
上?
感谢您的帮助。
我认为问题在于 PSVariable 类型的 Get-Variable returns 对象,因此在其中定义了 Panel 对象。使用成员 属性 value
来检索它,像这样:
Get-Variable |where {$_.Value -is [System.Windows.Forms.Panel] } | % {$_.value.visible = $false}