Richtextbox

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Hallo,

De vraag die ik nu stel heb ik ooit de code van gehad maar overal dgezocht ook op google maar kan de juiste oplossing niet vinden.

Ik heb een listview, een textbox en een richtextbox.
Ik sla na het invoeren de listview als volgt op:
Code:
 Dim str(2) As String
            str(0) = textbox11.Text
            str(1)=richtextbox1.text
            Dim itm As ListViewItem
            itm = New ListViewItem(str, 0)
            lv1.Items.Add(itm)
            Dim myWriter As New IO.StreamWriter(CurDir() & "\Video\items.txt")
            For Each myItem As ListViewItem In lv1.Items
                myWriter.WriteLine(myItem.Text & "#" & myItem.SubItems(1).Text )
            Next
            myWriter.Close()

Invoeren werkt prima tot dat ik in richtextbox bijvoorbeeld meerder egels type en wel onderelkaar bijvoorbeeld:
appels
peren
aardbeien

Vervolgens sla ik deze op en bij het inlezen van de gegevens blijft het programma stoppen voor het zojuist ingevoerde item dus appels, peren en aardbeien
Ook **** dit voor bij het plakken in de richtextbox als de regels ondereelkaar staan.
Ik heb diverse dingen geprobeerd met replace, maar het lukt niet. Ik heb Vb2017

Vriendelijke groet
 
Je zegt dat het bij het inlezen ergens niet goed gaat en je laat alleen de code voor het opslaan zien.
Het enige dat me daarin opvalt is dat je een array van 3 elementen (0, 1, 2) declareert waarvan je er maar 2 gebruikt (0, 1)
 
Klopt wat je zegt maar ik had de code wat aangepast doch dit is blijven staan.
Na het opslaan staat in de file (items.text)
aardbeien
appels
peren
Ik lees op de volgende manier in:
Code:
            lv1.Items.Clear()
            If IO.File.Exists(CurDir() & "\Video\items.txt") Then '// check if file exists.
                Dim myCoolFileLines() As String = IO.File.ReadAllLines(CurDir() & "\Video\items.txt")  '// load your file as a string array.
                For Each line As String In myCoolFileLines '// loop thru array list.
                    Dim lineArray() As String = line.Split("#")
                    Dim newItem As New ListViewItem(lineArray(0) 
                    newItem.SubItems.Add(lineArray(1))        
                    lv1.Items.Add(newItem)
                Next
            End If
 
Inmiddels kom ik erachter dat als ik in de richtextbox Enter niet gebruik doch om op de volgende regel te komen backspace gebruik dan werkt het wel en geeft na het inladen de richtextbox het ingevoeder weer zoals ingevoerd dus
appels
aardbeien
peren.
Dus zou eigenlijk Enter moeten worden uitgeschakeld maar dat is weer lastig bij het invoeren. van meerdere regels en het werkt dan ook niet als ik tekst in de richtextbox plak.
Wie heeft een idee
 
Kan aan mij liggen maar ik zie nergens in je voorbeeldcode het gebruik van een RichTextBox object.

Het is inderdaad niet een Enter maar een linefeed (vbLf) of Chr(10)
 
Laatst bewerkt:
Code:
Dim str(5) As String
            str(0) = t1.Text
            str(1) = c1.Text
            str(2) = r1.Text
            str(3) = t2.Text
            str(4) = T3.Text
            str(5) = T4.Text
            Dim itm As ListViewItem
            itm = New ListViewItem(str)
            lv2.Items.Add(itm)
            Dim myWriter As New IO.StreamWriter(CurDir() & "\Video\items2.txt")
            For Each myItem As ListViewItem In lv2.Items
                myWriter.WriteLine(myItem.Text & "#" & myItem.SubItems(1).Text & "#" & myItem.SubItems(2).Text & "#" & myItem.SubItems(3).Text & "#" & myItem.SubItems(4).Text & "#" & myItem.SubItems(5).Text)
            Next
            myWriter.Close()

       [B][I] 'listview schoonmaken en opnieuw inlezen waarna hij dus niet r.text( richtextbox) pakt indien er een return is ingegeven[/I][/B]
   
    lv1.Items.Clear()
        If IO.File.Exists(CurDir() & "\Video\items.txt") Then 
            Dim myFileLines() As String = IO.File.ReadAllLines(CurDir() & "\Video\items.txt")  
            For Each line As String In myFileLines 
                Dim lineArray() As String = line.Split("#")
                Dim newItem As New ListViewItem(lineArray(0), 0)
                newItem.SubItems.Add(lineArray(1))
                newItem.SubItems.Add(lineArray(2))
                newItem.SubItems.Add(lineArray(3))
                newItem.SubItems.Add(lineArray(4))
                newItem.SubItems.Add(lineArray(5))
     lv1.Items.Add(newItem)
            Next
        End If
        lv1.Sorting = SortOrder.Ascending
     

    End Sub
 
Er zat een klein foutje in.
Code:
Dim str(5) As String
            str(0) = t1.Text
            str(1) = c1.Text
            str(2) = r1.Text
            str(3) = t2.Text
            str(4) = T3.Text
            str(5) = T4.Text
            Dim itm As ListViewItem
            itm = New ListViewItem(str)
            lv1.Items.Add(itm)
            Dim myWriter As New IO.StreamWriter(CurDir() & "\Video\items.txt")
            For Each myItem As ListViewItem In lv2.Items
                myWriter.WriteLine(myItem.Text & "#" & myItem.SubItems(1).Text & "#" & myItem.SubItems(2).Text & "#" & myItem.SubItems(3).Text & "#" & myItem.SubItems(4).Text & "#" & myItem.SubItems(5).Text)
            Next
            myWriter.Close()

        'listview schoonmaken en opnieuw inlezen waarna hij dus niet r.text( richtextbox) pakt indien er een return is ingegeven
   
    lv1.Items.Clear()
        If IO.File.Exists(CurDir() & "\Video\items.txt") Then 
            Dim myFileLines() As String = IO.File.ReadAllLines(CurDir() & "\Video\items.txt")  
            For Each line As String In myFileLines 
                Dim lineArray() As String = line.Split("#")
                Dim newItem As New ListViewItem(lineArray(0), 0)
                newItem.SubItems.Add(lineArray(1))
                newItem.SubItems.Add(lineArray(2))
                newItem.SubItems.Add(lineArray(3))
                newItem.SubItems.Add(lineArray(4))
                newItem.SubItems.Add(lineArray(5))
     lv1.Items.Add(newItem)
            Next
        End If
        lv1.Sorting = SortOrder.Ascending
     

    End Sub
 
Ik heb hierbij een klein programmaatje gevoegd met een riochtextbox, textbox en listview. Hieruit blijkt dat richtextbox 1 regel kan opslaan bij een return voor het invoeren van text loopt het programma vast. Ga ik met tab of spacebalk naar de volgende regel dan lukt het wel en ook de plakfunctie werkt slechts bij 1 regel
 

Bijlagen

  • richtextbox.zip
    664,7 KB · Weergaven: 18
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan