ListBox issue

Ask questions about creating Graphical User Interfaces (GUI) in PowerShell and using WinForms controls.
Forum rules
Do not post any licensing information in this forum.

Any code longer than three lines should be added as code using the 'Select Code' dropdown menu or attached as a file.
Locked
User avatar
ltwillis
Posts: 6
Joined: Mon Apr 14, 2014 10:27 am

ListBox issue

Post by ltwillis » Wed Oct 21, 2015 1:25 pm

I have the PS script below:
PowerShell Code
Double-click the code block to select all.
$holdval2 = Get-Mailbox $MailboxAddress.Text
	$WhenMailboxCreated.Text = $holdval2.WhenMailboxCreated
	$ADUserObjectCreated.Text = $holdval2.WhenCreated
	
	$EA = $holdval2.EmailAddresses
	Load-ListBox $Proxys $EA
$EA ends up holding a list of email addresses (6 of them) in an array. But the only thing that displays in the ListBox is "(Collection)", which is obviously not what is wanted here. I would like for the 6 email addresses to show up in the ListBox, one per line.

What am I missing here?

User avatar
SAPIEN Support Forums
Posts: 945
Joined: Wed Dec 03, 2014 2:26 pm

ListBox issue

Post by SAPIEN Support Forums » Wed Oct 21, 2015 1:25 pm

This is an automated post. A real person will respond soon.

Thank you for posting, ltwillis.

Here are some hints to help you get an accurate and complete answer to your question.

Ask in the best forum: If you asked in the wrong forum, just copy your question to the right forum.

Anticipate follow-up questions!

Did you remember to include the following?
  • 1. Product, version and build
    2. 32 or 64 bit product
    3. Operating system, e.g. Windows 7 64 bit.
    4. Attach a screenshot, if applicable
    5. Attach logs, crash reports, etc., in a ZIP file
If not, please take a moment to edit your original post or reply to this one.

*** Make sure you do not post any licensing information ***

User avatar
jvierra
Posts: 13725
Joined: Tue May 22, 2007 9:57 am
Contact:

Re: ListBox issue

Post by jvierra » Wed Oct 21, 2015 1:41 pm

Use this:

$proxys.Items.AddRange($EA)

User avatar
ltwillis
Posts: 6
Joined: Mon Apr 14, 2014 10:27 am

Re: ListBox issue

Post by ltwillis » Fri Oct 23, 2015 8:10 am

I didn't see your post/reply until today. I found the issue though. Turns out just had to make one simple change to line 5 as below:

[System.Array]$EA = $holdval2.EmailAddresses

For some reason, the data type for $EA was being set to ArrayList instead of just Array, and the Load-Listbox function is expecting an object of data type [array]. So once I added the "[System.Array]" right before $EA it all worked perfectly.

By the way, do you know exactly what the difference is between the two data types Array and ArrayList??? and why are there two?

Thanks again.

User avatar
jvierra
Posts: 13725
Joined: Tue May 22, 2007 9:57 am
Contact:

Re: ListBox issue

Post by jvierra » Fri Oct 23, 2015 8:19 am

ArrayList is correct however you had only one item in the list so it failed. Forcing it to be an array allowed the function to create an arraylist.

This is what is happening:
PowerShell Code
Double-click the code block to select all.
PS C:\scripts> [collections.arraylist]'xxx'
Cannot convert the "xxx" value of type "System.String" to type "System.Collections.ArrayList".
At line:1 char:1
+ [collections.arraylist]'xxx'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : ConvertToFinalInvalidCastException

PS C:\scripts> [collections.arraylist][array]'xxx'
xxx
PS C:\scripts>
If the object passed is not an array then the cast fails. Forcing the string into an array fixes this.

A simple way is @('some string')

Locked