1.В вашем коде нет форм / событий триггеров.
2.В вашем коде нет нужных объектов графического интерфейса для хранения результатов списка / записи.
Форма - это просто контейнер для хранения элементов, пока вы не добавите код, чтобы заставить его что-то делать.У вас должен быть правильный объект GUI для отправки этого результата.
Я не уверен, что вы делаете это все вручную в ISE, или VSCode, или в Блокноте, или где-то еще, но это хорошая первая попытка.Однако то, что вы показываете, по-видимому, указывает на то, что вы не совсем разбираетесь в разработке GUI / общей разработке приложений, так как то, что вы делаете, на самом деле не уникально для PowerShell, а то, что требуется для любого клиента или приложения для разработки приложений.
Так что, действительно, потратьте некоторое время на изучение / обзор общей разработки WPF / Winforms, и этот материал для событий формы будет рассмотрен.
Что касается вашего варианта использования, вам необходимо:
- Определить объект графического интерфейса списка (многострочный, ListBox, ListView, datagrid) для хранения результатов (синхронизация полей со списками означает добавление и удаление элементов в действиях по событию)
- Определение того, что представляет собой этот список (текстовые файлы,чтение базы данных и т. д.)
- В событии щелчка, изменения или другой формы прочитайте этот список и заполните объект списка GUI
Существует множество примеров этого на этом сайте и всечерез Интернет.
Вот хорошее видео о разработке графического интерфейса с помощью PowerShell:
комбинированный список заполняемых PowerShell на основе selecэлемент ted в другом комбинированном списке
Из вышеприведенного обсуждения (не то, что нужно просто добавить в свой код, не понимая, что и зачем):
Use a ComboBox.SelectionChangeCommitted Event:
"Occurs when the user changes the selected item and that change is displayed in the ComboBox"
$combobox2_SelectionChangeCommitted={
$Mailboxes = Get-Mailbox -OrganizationalUnit $ClientSelected
foreach ($mailbox in $Mailboxes)
{
$CurrentMailbox = "{0} ({1})" -f $mailbox.Name, $mailbox.Alias
Load-ComboBox $combobox2 $CurrentMailbox -Append
}
}
Use a button:
$button1_Click={
$Mailboxes = Get-Mailbox -OrganizationalUnit $ClientSelected
foreach ($mailbox in $Mailboxes)
{
$CurrentMailbox = "{0} ({1})" -f $mailbox.Name, $mailbox.Alias
Load-ComboBox $combobox2 $CurrentMailbox -Append
}
}
Наконец, используя это…
Write-Host "ComboBox = " $liste1.DisplayMember
Write-Host "ComboBox = " $liste2.selectedvalue
… это не то, что нужно делать, потому что консоль не открывается, чтобы увидеть эти результаты, и следует избегать Write-Host, за исключением того, что при использовании только консольных раскрасок текста в других сценариях форматирования только консоли, этотакже очищает буфер отображения, поэтому его нельзя отправить ни к чему другому.Кроме того, у вас нет ни одного объекта графического интерфейса ComboBox в форме, поэтому он не служит никакой цели для вашего варианта использования.