[ sale83 @ 11.03.2006. 03:48 ] @
Imam problem sa ListBox-om.

Kad uradim mulit-select i kad kliknem na dugme da mi prikaze
' sta sam sve izabrao to nece !!
MessageBox.Show(ListBox.SelectedItems)

Ustvari ListBox.SelectedItems -> Imam gresku da ne moze da se konvertuje u String

Dok sa ListBox.SelectedItem radi odlicno samo jedan fajl koji izaberem!!

Znaci meni bi trebalo nesto ovako :
Code:


Dim s As String()
   Dim index As Integer

            ' podeli sve 

            s = Regex.Split(lstFiles.SelectedItems, " ")
            'Ali ovo gore ne radi posto dobijam gore navedenu gresku

           'i na kraju da prikaze sve sto je izabrano  i podeljeno
           ' Da prodje kroz neku petlju For ... Next  i da prikaze

           ' ono sto je izabrano i podeljeno
            MessageBox.Show(s(index) & vbNewLine)

            'Next index
       




Znaci kako uopste da dobijem u messageBox sve sto sam izabrao iz ListBox-a bez obzira da li je podeljno ili nije! Znaci nikako ne mogu da pohvatam sve vrednosti!!

Kako bi to otprilike trebalo da izgleda i sta treba da uradim ??





[Ovu poruku je menjao sale83 dana 11.03.2006. u 09:38 GMT+1]
[ Oliver Klaćik @ 11.03.2006. 08:19 ] @
Pa, SelectedItems ti vraća kolekciju, tačnije SelectedObjectCollection klasu. A kroz tu klasu možeš pristupati pojedinim Item objektima... Najbolje je da napraviš For Each loop...
[ sale83 @ 11.03.2006. 08:57 ] @
Nisam te bas najbolje razumeo mozda je razlog sto sam ceo dan listao MSDN i trazio neko resenje.

SelectedItems Property
Returns a SelectedItems collection

Medjutim dosao sam do ovoga:

Code:

            Dim iCtr As Integer
            Dim msg As String

            ' List the names of the selected items.
            For iCtr = 0 To lstFiles.SelectedItems.Count
                msg = msg & "Item name: " & lstFiles.SelectedItems.Item(iCtr) & vbCr

            Next
            MsgBox(msg)


Taj gore kod nece da radi ako je lstFiles.SelectedItems.Item(iCtr)

Dobijam gresku: Index was outside the bounds of the array
Nije mi jasno zasto izalazi izvan granice ??


Ako stavim ovako:

Code:

            Dim iCtr As Integer
            Dim msg As String

            ' List the names of the selected items.
            For iCtr = 0 To lstFiles.SelectedItems.Count
                msg = msg & "Item name: " & lstFiles.SelectedItems.Item(0) & vbCr

            Next
            MsgBox(msg)


Izbaci Proku sa onoliko redova koliko sam selectovao ali prikazuje samo prvi selectovan fajl. Logicno zato sto je lstFiles.SelectedItems.Item(0) . Medjutim zasto onaj gore izlazi iz opsega " izvan granice" ??

[ nervozica @ 11.03.2006. 12:32 ] @
Code:

           lstFiles.SelectedItems.Count - 1

[ Oliver Klaćik @ 11.03.2006. 12:58 ] @
Upravo tako...

Count property vraća broj objetaka u kolekciji, a sve kolekcije i nizovi u .Net-u su zero-based, tj. počinju od nule...
[ sale83 @ 11.03.2006. 13:00 ] @
E hvala nervozica - vec sam bio resio taj problem.

Posle svoje poruke sam ukapirao da treba da oduzmem jedan !!

Nego sad se me zanima kako da klikom na jedan button selektujem sve u ListBox-u ??
[ Oliver Klaćik @ 11.03.2006. 13:04 ] @
Code:

    ' Select three items from the ListBox.
    listBox1.SetSelected(1, True)
    listBox1.SetSelected(3, True)
    listBox1.SetSelected(5, True)
[ sale83 @ 11.03.2006. 13:25 ] @
Zahvaljujem Olivere na brzom odgovoru !!

Na osnovu tog sto si mi reko uradio sam ovako i sad je OK

Code:

        Dim iCtr As Integer
        For iCtr = 0 To lstFiles.Items.Count - 1
            lstFiles.SetSelected(iCtr, True)
        Next


Tnx jos jednom !!

Poz