У меня есть скрипт PowerShell, который создает графический интерфейс WinForms. На главной форме есть большое количество кнопок (PushButtons), каждая из которых имеет свое имя / текст. Я пытаюсь найти способ итеративно назначать каждой кнопке прослушиватель событий щелчка, который записывает имя соответствующей кнопки в консоль. Проблема заключается в том, что всякий раз, когда вызывается функция (функция, в которую я изначально передал "$ button.Add_Click ({function}) "), я не совсем уверен, как ссылаться на / получить доступ к имени кнопки из этой функции. Это почти как если бы я больше не находился в области нажатия кнопки, поэтому у меня больше нет доступа к кнопке.
Пример:
$ButtonArray.ForEach({
$_.Add_Click({ Say-Name })
})
function Say-Name() {
Write-Host # How do I access the button's properties?
}
ВПример выше, я застрял в части Write-Host. Я пытался использовать $_
для ссылки на кнопку, но оказалось, что $_
на самом деле ссылается на System.Windows.Forms.MouseEventArgs
объект. Я попытался передать параметры через блок скрипта Add_Click
, но это не сработало, потому что, как только я вошел в блок скрипта, у меня нет доступа к какой-либо внешней информации. Как я могу сообщить своей функции, какая кнопка ее вызывает?