Powershell如何遍历界面特定控件及取得其属性


PowerShell交流中心分类: QuestionsPowershell如何遍历界面特定控件及取得其属性
1
星尘 asked 7年 ago

比如一个界面上有数个textbox,有数个checkbox,还有按钮等。
遍历全部控件可以用 foreach ($cur in $form1.Controls),但是只想遍历其中的所有textbox呢?
另外遍历后如何判断是textbox还是checkbox,等等。
c里面用的是 if ($cur is System.Windows.Forms.TextBox) 这样的,但是powershell 里试了不行,用的是 -is,用 $cur -eq “System.Windows.Forms.TextBox, Text: ”也不行,但是在输出界面上显示 $cur 的值是“System.Windows.Forms.TextBox, Text: ”
 
还有就是如何取得控件的属性,比如textbox的名称,textbox的值,用的是哪个语句。
 
谢谢! 

1 Answers
1
Best Answer
Mooser Lee 管理员 answered 7年 ago

-is 肯定是可以的,注意要用中括号。

PS> $yes -is [System.Windows.Forms.TextBox]
False
PS> $obj = New-Object System.Windows.Forms.TextBox
PS> $obj -is [System.Windows.Forms.TextBox]
True
星尘 replied 7年 ago

果然是用中括号的~

那么取值应该用什么呢?

Mooser Lee 管理员 replied 7年 ago

先判断类型匹配,然后强制类型转换:
PS> $txtBox = [System.Windows.Forms.TextBox]$obj
PS> $txtBox.Text

星尘 replied 7年 ago

好的,我试试。