Avatar billede grydgaard Nybegynder
04. december 2003 - 10:49 Der er 4 kommentarer og
1 løsning

udskift listbox med listview

hejsa eksperter.

jeg har fundet ud af at jeg vil skifte 2 listboxe ud med 1 listview box men kan ikke lige se hvordan jeg skal gøre det. er der en der kan hjælpe mig?

her er koden:

Private Sub Command3_Click()
'Dimmer diverse variable
  Dim i As Integer
  Dim LinkArray() As String
  Dim AntalLinks As Integer
  Dim strHtml_Lcase As String
  Dim Start As Long
  Dim nystart As Long
 
  If Text1.Text = "" Then
  GoTo endsub
  End If

'Opretter streng med kun små bogstaver, og finder forekomster af "</a>"
'Hvis man ikke bruger Lcase, er der forskel på </A> og </a>!!!
  strHtml_Lcase = LCase(strHtml)
  LinkArray() = Split(strHtml_Lcase, "</a>")
  AntalLinks = UBound(LinkArray)
 
'Redimmer LinkArray
  ReDim LinkArray(1 To AntalLinks)
 
'Looper gennem tekststrengen, finder links og gemmer dem i LinkArray
  For i = 1 To AntalLinks
    Start = InStr(nystart + 1, strHtml_Lcase, "<a href=") + 8
    LinkArray(i) = Mid(strHtml, Start, InStr(Start, strHtml_Lcase, ">") - Start)
    LinkArray(i) = Replace(LinkArray(i), Chr(34), "")
    LinkArray(i) = Replace(LinkArray(i), "=", "")
    LinkArray(i) = Replace(LinkArray(i), "main", "")
    LinkArray(i) = Replace(LinkArray(i), "target", "")
    nystart = Start
   
  Next i
 
' Viser alle links
  List1.Clear
  For i = 1 To AntalLinks
    List1.AddItem LinkArray(i)
  Next i
 
    Dim htmlKode As String
    Dim n As Integer
    Dim alleLinks() As String  'inedholder til sidst alle dine links
   
    Dim splittetKode As Variant
    Dim temparray As Variant
    Dim listitm As String
   
    htmlKode = strHtml  'blot en tekstboks på formen
    'Et array der indeholder htmlkode intil </a>
    'dvs. antallet af poster i arrayet = antallet af links
    splittetKode = Split(htmlKode, "</a>")
   
    'Den sidste linie indeholder ikke links
    ReDim Preserve splittetKode(UBound(splittetKode) - 1)
   
    For n = 0 To UBound(splittetKode)  'For hvert link
        'split hvert link op med > som delimiter.
        'Den sidste post vil være selve linket
        temparray = Split(splittetKode(n), ">")
        List2.AddItem (temparray(UBound(temparray)))
    Next n
   
   
   
endsub:
 
End Sub
Avatar billede martin_moth Mester
04. december 2003 - 12:30 #1
Du kan udskifte dette

  If Text1.Text = "" Then
    GoTo endsub
  End If

Med dette:

If Text1.Text = "" Then Exit Sub


Det er lidt pænere.

Er det ikka bare at loope over alle dine items i din listbox og smide dem over i en listview?

PS: hvor har du fået koden fra - den ser lidt bekendt ud, noget af den :o)
Avatar billede grydgaard Nybegynder
04. december 2003 - 12:45 #2
koden er faktisk en jeg fik herinde en gang :)
det kan jeg måske godt men jeg er ikke sikker på hvordan
Avatar billede martin_moth Mester
04. december 2003 - 12:52 #3
Jeg synes det meste ligner noget jeg selv har skrevet engang - fx. lavede jeg engang et array der hed LinkArray() osv... :o)

Dim i as long
For i = 0 to list1.listcount-1
  ListView1.ListItems.Add 1, , List1.List(i)
  ListView1.ListItems(1).SubItems(1) = List2.List(i)
next i

Forudsat at der er lige mange items i list1 og list 2
Avatar billede martin_moth Mester
04. december 2003 - 12:53 #4
Der skal nok stå:

Dim i as long
For i = 0 to list1.listcount-1
  ListView1.ListItems.Add i+1, , List1.List(i)
  ListView1.ListItems(i+1).SubItems(1) = List2.List(i)
next i
Avatar billede martin_moth Mester
04. december 2003 - 12:58 #5
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester