What kind of items are in the listbox? (a string, integer, an data table, a class object)?
–
Holger BrandtJul 23 '12 at 0:58

they are all strings coming from DB and i am using data bindings (in flyout menu) to populate the listbox automatically on form load
–
Dany KhalifeJul 23 '12 at 1:25

Can you give more detail on the data binding sources. Even better, show me the code that binds the listbox to the data source. (Does the data source for listbox1 only have a single column?)
–
Holger BrandtJul 23 '12 at 1:30

i am basically using the GUI for doing that (attached an img) and then in the form_load event, i only have : Me.EmployeeTableAdapter.FillBy1(Me.SetupDataSet.Employee)
–
Dany KhalifeJul 23 '12 at 1:53

When you use a databound ListBox, the items aren't ListBoxItem objects (which you would expect to have Text and Value properties). Rather they are the type from the data source. The Items collection (and its variations, such as SelectedItems) is defined as a collection of objects, and the runtime type is obtained from the data source. Have you tried something like this?

For i = 0 To ListBox1.SelectedItems.Count
MsgBox(ListBox1.SelectedItems(i).ToString())
Next

In the comments, you indicated that the data source is a DB object containing String objects. If you have a collection of classes, such as Person, you can get it this way:

For i = 0 To ListBox1.SelectedItems.Count
MsgBox(DirectCast(ListBox1.SelectedItems(i), Person).FirstName)
Next

You should also get the same results with a For Each, as long as the selected items collection isn't changed while you are looping.

For Each p As Person in ListBox1.SelectedItems
MsgBox(p.FirstName)
Next

NOTE: This is untested code, as I'm not in front of Visual Studio at the moment.

EDIT: I see from the screenshot that the Value Member is set to a property named Id. If that is a uniqueidentifier column from the database, then the runtime type in the ListBox should be Guid.