2
以下代碼將抓取一個目錄併爲每個目錄創建菜單項。它工作得很好,直到Add_Click部分;由於某種原因,無論點擊了哪個按鈕,它都會吐出相同的文件。錯誤的目錄數據輸出
$directory = Get-ChildItem -Path ($relative_path + "/scripts")
foreach ($file in $directory)
{
$mnuTemp = New-Object System.Windows.Forms.MenuItem
$mnuTemp.Text = $file.Name
$mnuTemp.Add_Click({Write-Host $file.Name})
$mnuScripts.MenuItems.Add($mnuTemp)
}
是「同一個文件」是第一個在'$ directory'集合中的第一個,最後一個還是中間的任意一個?它總是一樣的,還是有所不同? – alroc
它總是被掃描的最後一個。 – user1781652
然後,您需要發佈更多腳本。這聽起來像'$ mnuScripts.MenuItems'只包含一個'MenuItem',並且該項目在每次foreach'迭代時被覆蓋,而不是追加到一個集合。你以某種方式抑制錯誤?對於'System.Windows.Forms.MenuItem'對象沒有'Add_Click'方法,我可以在[文檔]中看到(http://msdn.microsoft.com/zh-cn/library/system.windows.forms .menuitem.aspx) – alroc