如何在我的窗體中列出所有控件,其中(名稱) - 屬性以某種特定開頭,然後在foreach中使用它?Powershell窗體:如何根據名稱屬性找到控件
我有下多個tabpages
多個groupboxes
其中name
開始於gbs
(實施例:gbs1,gbs2,gbs3 ++)。現在我想禁用所有以gbs*
開頭的groupebox,而不必手動列出所有的groupbox。
我試過查看它,但是我找不到它的好文檔。我可能正在尋找錯誤的詞...
我猜這是一個開始,而且就我而言,但我不知道該從哪裏走,或者如果我是離開;
$list = @($MainForm.Controls.Find -like 'gbs*')
foreach ($item in $list){$item.enabled = $false} #Just a example of what I'm thinking
目的: 我創建會自動Active Directory中的.exe文件的形式。該表單包含一組設置,並且它們都在這些組框中。我將要有一個「編輯模式」,以便在它處於活動狀態時啓用組框。沒有時,禁用。
解決方案,這要歸功於從@Clijsters幫助:
#Get all the tabpages
$script:tabpages = $tabTasks.Controls | Where-Object { $_.Name -like "tp*" } | select Name, Controls
$script:tabpages += $tabSettings.Controls | Where-Object { $_.Name -like "tp*" } | select Name, Controls
#Get groupboxes in tabpages
$script:groupboxes = [System.Object]$tabpages.Controls
#Disable
$groupboxes | Where-Object { $_.Name -like "gbs*" } | ForEach-Object { $_.Enabled = $true }
所以你正在尋找類似'$列表= $ MainForm.childNodes | Where-Object {$ _。Name-like「gbs *」}'? – Clijsters
...你的腳本的上下文是什麼?一個Internet Explorer實例? '調用,WebRequest'? – Clijsters
感謝您的回覆,@Clijsters。這是一個通過一系列方式自動執行活動目錄的程序。我想要做的是使用這種「編輯模式」,其中包含設置的所有組框(這是很多設置)將被禁用或啓用天氣您處於編輯模式或不。 ---我試過'$ MainForm.Controls | Where-Object {$ _。Name-like「gbs *」}'這確實給了我一份清單,太棒了!然而,我認爲通過使用'$ mainform'它會包含tabpages等,它似乎沒有做到。大部分的組合框都在標籤頁中。當然我會再測試一些。 – MadsTheMan