Archief - VB.NET : Listbox opvullen vanuit Thread

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

a143290

Legacy Member
Volgende situatie

Ik heb een thread die de volledige HTML code van een website haalt en in een string zet.

Wanneer deze thread is afgelopen haal ik er via een reguliere expressie de nodige informatie uit en stop ik deze in een ArrayList

Nu wil ik, als dat klaar is, een ListBox op mijn formulier opvullen met mijn resultaten.

Code:

Code:
Private Sub fetchImageList()
    Try

      imageList = New ArrayList
      Dim myMatches As MatchCollection
      Dim r As Regex = New Regex("*bepaalde regex*", RegexOptions.IgnoreCase Or RegexOptions.Singleline)
      Dim successfulMatch As Match
      myMatches = r.Matches(HTMLContent)
      For Each successfulMatch In myMatches
        If Not imageList.Contains(successfulMatch.Groups(1).ToString) Then
          imageList.Add(successfulMatch.Groups(1).ToString)
        End If
      Next
      fillImageList()

    Catch ex As Exception
      MsgBox(ex.Message)
    End Try
  End Sub

  Private Sub fillImageList()
    lstResults.Items.Clear()
    lstResults.Items.AddRange(imageList.ToArray)
  End Sub

Dit gaat echter niet vanwege "cross-thread operation not valid". Ik heb al heel wat websites afgezocht, maar ik krijg enkel een 'oplossing' voor de tekst van een textbox aan te passen, nergens iets over listboxes opvullen...

a143290

Legacy Member
Typisch... Urenlang zoeken, forumtopic maken en dan het licht zien >_>

Code:
Delegate Sub fillImageListCallback()

  Private Sub fillImageList()
    If (lstResults.InvokeRequired) Then
      Dim d As fillImageListCallback = New fillImageListCallback(AddressOf fillImageList)
      lstResults.Invoke(d)
    Else
      lstResults.Items.Clear()
      lstResults.Items.AddRange(imageList.ToArray)
    End If
  End Sub
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan