Twee dingen opslaan in listbox

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Hallo,

Ik wil een foto met een textvak opslaan in een listbox. Ik heb het volgende gedaan.

Heb twee textboxen. In eentje komt het pad naar de foto en in de andere een omschrijving. Vervolgens voeg ik beide toe aan een listbox op de volgende wijze.



Code:
  ofd.Filter = "Media Files|*.bmp;*.gif;*.jpg;*.ico;*.png "

        ofd.ShowDialog()
        Foto.Text = ofd.FileName
        ListBox1.Items.Add(foto.Text)
        ListBox1.Items.Add(omschrijving.Text)

Vervolgens save ik de listbox als volgt:

Code:
 Dim sfd As New SaveFileDialog With { _
         .AddExtension = True, _
         .Filter = "MP3 Lists (*.bw2)|*.bw2", _
         .FilterIndex = 0, _
      .RestoreDirectory = False, _
         .InitialDirectory = My.Application.Info.DirectoryPath}
    If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
            IO.File.WriteAllLines(sfd.FileName, (From item In ListBox1.Items.Cast(Of String)()).ToArray)
            IO.File.WriteAllLines(TextBox2.Text, (From item In ListBox1.Items.Cast(Of String)()).ToArray)
            '  My.Settings.lastSavedListPath = sfd.FileName
            My.Settings.Save()

        End If

Helaas werkt het niet. Graag hulp indien mogelijk

Groet
 
Zou je niet beter een ListView kunnen gebruiken i.p.v. een ListBox? Dan word de item text foto.Text en een subitem wordt dan omschrijving.Text. Eventueel kun je ook nog per item een Tag opgeven, bijvoorbeeld het volledige pad van de foto.
 
listbox

daar heb je helemaal gelijk in en ik heb ook een listview gemaakt maar ik ben daar niet echt bedreven in omdat ik al veel dingen heb gemaakt maar altijd met listboxen. Wordt inderdaad misschien wel tijd om meer met een Listview te doen. Heb dan ook inmiddels zo'n listview aangemaakt en zelfs gelukt een pad te maken. Hoe dit verder allemaal moet weet ik nog niet maar expirementeer wel verder alleen mijn probleem is dat ik wel weet hoe je save en load doet van een listbox, maar niet van een listview heb gezocht maar niet echt een methode gevonden.
 
Weet je al wel hoe je je informatie zou willen toevoegen aan een ListView? Dan kan ik een voorbeeld maken.
 
Ik wil graag een 3 kolommen: Datum Omschrijving en foto dus bijvoorbeeld:

Datum: Omschrijving Foto
12-2-1990 Blablabla c:\foto\foto.jpg

Als dus een rij geselecteerd wordt moet in e picture box de foto worden getoond.

Mooier zou nog zijn als die rij wordt geselecteerd dat dat

textbox1 wordt gevuld met de datum, textbox2 met de omschrijving en de picturebox met de foto.

Met een listbox deed ik altijd selected.index en slecteditemmaar volgens mij kan dit niet met een listview dat je bijvoorbeeld de listview niet ziochtbaar hebt maar een voor en achteruitknop om te bladeren.
 
Zo selecteer je een ListViewItem (1e SubItem van het eerste Item :)):

Code:
ListView1.SelectedItem(0).SubItems(1).Text
 
Om te beginnen moet je een ListView plaatsen en de kolommen toevoegen. Zet de View property op Details anders zie je ze niet. Dan om items toe te voegen:

Code:
        Dim lvi As New ListViewItem

        lvi.Text = "12-2-1990"
        lvi.SubItems.Add("Blablabla")
        lvi.SubItems.Add("c:\foto\foto.jpg")

        ListView1.Items.Add(lvi)

listview_vb.jpg
 
Ik ben nu inmidderls zover dat ik alles kan toevoegen foto keurig wordt ingeladen. Ik zou nu eerst graag de methode willen weten om dit te loaden en saven. Heb wel rondgekeken / gegoogeld maar kan niets bruikbaar vinden
 
Ik Gebruik dit

Code:
  Private myCoolFile As String = "C:\Adresboek\test.txt" '// your file.


'Save 
Private Sub Button_Save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Save.Click
        Dim myWriter As New IO.StreamWriter(myCoolFile)
        For Each myItem As ListViewItem In ListView1.Items
            myWriter.WriteLine(myItem.Text & "#" & myItem.SubItems(1).Text & "#" & myItem.SubItems(2).Text _
                               & "#" & myItem.SubItems(3).Text)


        Next
        myWriter.Close()
    
 
End Sub

'En in Formlode

Private Sub Button_Import_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Import.Click

 If IO.File.Exists(myCoolFile) Then '// check if file exists.
            Dim myCoolFileLines() As String = IO.File.ReadAllLines(myCoolFile) '// load your file as a string array.
            For Each line As String In myCoolFileLines '// loop thru array list.
                Dim lineArray() As String = line.Split("#") '// separate by "#" character.
                Dim newItem As New ListViewItem(lineArray(0))
                newItem.SubItems.Add(lineArray(1))
                newItem.SubItems.Add(lineArray(2))
                newItem.SubItems.Add(lineArray(3))
                
                ListView1.Items.Add(newItem)
            Next
      End If

  End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan