ironheadMedlem sedan mars 20011 346 inlägg Hej!
Jag försöker göra en enkel adressbok i VB.
Jag använder VB6.0 & Access 2002.
1.) Jag har gjort 2 listBoxar, 1 som heter grupper & 1 som heter namn. När jag klickar på en grupp ska namnen under dessa grupper uppenbara sig i ListBox2...hur plockar jag ut id:et ur ListBox1 för att kunna använda i selectsatsen i ListBox2 ?
2.) För att senare göra denna adressbok lite snyggare skulle jag vilja lista grupper och namn med ikoner bredvid namnen...finns det nåt sätt att lägga till bilder i en lista ?
nikoMedlem sedan juni 20022 599 inlägg 1.)
http://www.webforum.nu/showthread.php?s=&forumid=89&threadid=73460
2.)
Man kan meka in ikoner i en listbox via API:er, men jag rekommenderar nog ändå att du använder en listvy istället om du har såna behov. Då får du ikonerna (och många andra finesser) gratis.
ironheadMedlem sedan mars 20011 346 inlägg Tack så hemskt mycket! :birp
Föresten...vart hittar jag "listvy"?
sawMedlem sedan mars 20011 880 inlägg Niko menar nog en Listview(listvy på svenska?)
Nexus86Medlem sedan okt. 20023 030 inlägg ListView finns i Microsoft Windows Common Controls 6.0 och 5.0
Project > Components > Microsoft Windows Common Controls 6.0
ironheadMedlem sedan mars 20011 346 inlägg Nu har jag lagt till en Listview...nu vill jag ha ikoner också...
Kontrollerna heter Listview1 & ImageList1.
i imagelist finns 2 ikoner 16x16 på plats 1 & 2
Jag har denna kod:
Dim itmx As ListItem
Set itmx = ListView1.ListItems.Add(, , "Namn", 1, 1)
Men när jag kör den får jag detta fel:
ImageList must be initialized before it can be used......
Hur gör jag det?
Nexus86Medlem sedan okt. 20023 030 inlägg Högerklicka på ListView1 i VB, välj Properties, gå till Image Lists-tabben, byt på Small till ImageList1.
ironheadMedlem sedan mars 20011 346 inlägg För att hämta ut id:et i en ListBox använder jag denna kod:
ListGroup.ItemData(ListGroup.ListCount - 1) = RecSet("gruppid")
och hämtar id´t med:
Id = ListGroup.ItemData(ListGroup.ListIndex)
Hur skriver jag när jag har en ListView?
ironheadMedlem sedan mars 20011 346 inlägg Kan detta vara den rätta koden?
Id = ListGroup.SelectedItem.index
eller räknar man bara då värdet i själva listan, och inte id:t på posten?
red. Det var bara själva värdet i listan :(
nikoMedlem sedan juni 20022 599 inlägg En Listview har ingen ItemData-property däremot har varje item en Tag-property som du kan använda på ungefär samma sätt.
Ungefär:
Set itmx = ListGroup.ListItems.Add(, , "Namn", 1, 1)
itmx.Tag=RecSet("gruppid")
' ..
' Lite senare.
Id=ListGroup.SelectedItem.Tag
Eventuellt måste du casta med CInt och CStr, men det märker du isåf.
ironheadMedlem sedan mars 20011 346 inlägg Lyyysande! :e
Då kommer jag direkt på en fråga till ;)
När jag nu klickat på ett namn i en ListView vill jag att ikonen på just den raden ska ändras till en annan...hur lyckas man med det?
Nexus86Medlem sedan okt. 20023 030 inlägg ListView1.SelectedItem.ReportIcon = numret på nya bilden i ImageList
ironheadMedlem sedan mars 20011 346 inlägg Tackar! :birp
...och hur får man tillbaka dom till bild1 när man klickar på annan rad?
Nexus86Medlem sedan okt. 20023 030 inlägg Byt ut föregående rad mot
Dim oItem As ListItem
For Each oItem In ListView1.ListItems
If Not oItem.ReportIcon = 1 Then
oItem.ReportIcon = 1 ' antagligen första bilden
End If
Next oItem
Set oItem = Nothing
ListView1.SelectedItem.ReportIcon = 2 ' antagligen den nya bilden
R// Otestat eftersom jag inte orkar starta VB nu men det borde fungera ändå.
ironheadMedlem sedan mars 20011 346 inlägg miljOOOOOners Tack! :bire
ironheadMedlem sedan mars 20011 346 inlägg I själva listview rutan för kontaktinformationen har jag gjort såhär:
Dim itmx As ListItem
Dim colx As ColumnHeader
Set colx = List1.ColumnHeaders.Add(, , "col1")
Set colx = List1.ColumnHeaders.Add(, , "col2")
Set colx = List1.ColumnHeaders.Add(, , "col3")
Do Until RecSet.EOF
If RecSet("fornamn") > 0 Then
Set itmx = List1.ListItems.Add(, , RecSet("fornamn"))
End If
If RecSet("efternamn") > 0 Then
itmx.SubItems(1) = RecSet("efternamn") 'Här vill jag ha ny rad!!!
End If
If RecSet("titel") > 0 Then
itmx.SubItems(2) = RecSet("titel")
End If
OSV OSV.
ska man göra såhär?
egentligen vill jag att beskrivningen typ namn, titel arbete ska finnas i kolumn 1 och vara i fet stil och uppgifterna skall finnas i kolumn 2....får inte till det och får ingen ny rad heller...allt skrivs från vänster till höger...hur göra?
Nexus86Medlem sedan okt. 20023 030 inlägg Hur menar du? Vill du ha RecSet("titel") i kolumn 1 och namnen i kolumn 2?
ironheadMedlem sedan mars 20011 346 inlägg näe, jag vill ha typ:
kolumn1 kolumn2
Anders Andersson
VD
Slagman & Bong
Arbete 026-234 34 23
070-344 34 23
Hem 022-324 43 32
0730-343 32 22