Note that there are some explanatory texts on larger screens.

plurals
  1. POReturn an arraylist out of a function
    primarykey
    data
    text
    <p>So I've got a poweshell form in which you can add users to a listbox and at the same time to an arraylist. When I try to return the arraylist with all the users, it returns nothing.</p> <p>Here's my code</p> <pre><code>#---------------------# # Function AddUserGUI # #---------------------# Function AddUserGUI() { $AllUsers = New-Object System.Collections.ArrayList #---Form $Form = New-Object System.Windows.Forms.Form $Form.FormBorderStyle = "FixedSingle" $Form.Size = New-Object System.Drawing.Size(295,280) $Form.MaximizeBox = $False $Form.Text = "Add User(s)" $Form.StartPosition = "CenterScreen" $Form.Font = New-Object System.Drawing.Font("Segoe UI",9,0,3,1) #---TexBox $objTextBox = New-Object System.Windows.Forms.TextBox $objTextBox.Location = New-Object System.Drawing.Size(10,10) $objTextBox.Size = New-Object System.Drawing.Size(183,100) $objTextBox.MaxLength = 100 #---ListBox $objListBox = New-Object System.Windows.Forms.ListBox $objListBox.Location = New-Object System.Drawing.Size(10,45) $objListBox.Size = New-Object System.Drawing.Size(183,199) $objListBox.HorizontalScrollbar = $True #---Buttons $Add = New-Object System.Windows.Forms.Button $Add.Location = New-Object System.Drawing.Size(205,10) $Add.Size = New-Object System.Drawing.Size(75,23) $Add.FlatStyle = "PopUp" $Add.Text = "Add" $Remove = New-Object System.Windows.Forms.Button $Remove.Location = New-Object System.Drawing.Size(205,45) $Remove.Size = New-Object System.Drawing.Size(75,23) $Remove.FlatStyle = "PopUp" $Remove.Text = "Remove" $Confirm = New-Object System.Windows.Forms.Button $Confirm.Location = New-Object System.Drawing.Size(205,220) $Confirm.Size = New-Object System.Drawing.Size(75,23) $Confirm.FlatStyle = "PopUp" $Confirm.Text = "Confirm" #---Buttons On-Click Actions $Add_OnClick= { if($objTextBox.Text -ne "") { $UserChk = $true #[Bool](Get-ADObject -Filter { sAMAccountName -eq $objTextBox.Text } -Searchbase "ou=User_PFS,dc=pfs,dc=local") if($UserChk -eq $True) { if($objListBox.Items -contains $objTextBox.Text) {DisplayMsgBox "User already in list." "Duplicate entry" "Information" 0} ElseIf($objTextBox.Text -ne $NULL -and $objListBox.Items -notcontains $objTextBox.Text) { $objListBox.Items.Add($objTextBox.Text) [void]$AllUsers.Add($objTextBox.Text) } } ElseIf($UserChk -eq $False) {DisplayMsgBox "User not found." "Invalid User Name" "Information" 0} $objTextBox.Text = "" } } $Remove_OnClick= { $AllUsers.Remove($objListBox.SelectedItem) $objListBox.Items.Remove($objListBox.SelectedItem) } $Confirm_OnClick= { if($AllUsers.Count -eq 0) { DisplayMsgBox "Please add at least one user to the list." "No Users Found" "Information" 0 } ElseIf($AllUsers.Count -gt 0) { $Form.Close() Return $AllUsers } } #---Adding Elements to the form $Add.add_Click($Add_OnClick) $Remove.add_Click($Remove_OnClick) $Confirm.add_Click($Confirm_OnClick) $Form.Controls.Add($objListBox) $Form.Controls.Add($objTextBox) $Form.Controls.Add($Add) $Form.Controls.Add($Remove) $Form.Controls.Add($Confirm) #---Display Form $Form.ShowDialog()| Out-Null } $AllUsers = AddUserGUI foreach($User in $AllUsers){write-host $User} </code></pre> <p>The foreach loop generates no output whatsoever. How can I return this arraylist properly?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload