He! En fundering: Måste du rensa rutan? Kan du inte bara lägga till och ta bort skillnaderna? I C++ finns det GetTopIndex och SetTopIndex för en CListBox. Motsvarande måste väl också finnas i VB6? Kolla på dessa förslagListbox VB6
Finns det nåt sätt att spara vertical scroll. Vilket nr som för tillfället ligger synligt överst i listan.
Samt kunna styra i programmet så att vertical scroll visar en viss post överst.
Mitt problem är att när man klickar på en viss rad i en listbox så utförs en massa kod och listboxen rensas och läggs ut på nytt, och då måste jag visa scroll-mässigt på samma ställe. Annars visas alltid från första post och det blir förvillande.Sv: Listbox VB6
Sv:Listbox VB6
/Ruben
www.rjjournal.netSv: Listbox VB6
<code>
listboxen.AddItem "Stockholm", 0 ' Placerar Stockholm överst samma med Insert och Remove mfl.
'Du kan också navigera i Listan med
List1.TopIndex = List1.ListCount - 1 'visar sista posterna
'experimentera också med
Dim X As Long ' Declare variable.
X = List1.TopIndex ' Get current index.
List1.TopIndex = List1.TopIndex + 5 ' Reset topmost item.
If List1.TopIndex = X Then List1.TopIndex = 0
</code>
DVS. När du klickar på en rad så börjar du med att lagra List1.ListIndex i en variabel som du sedan
lägger in i koden ovan under TopIndex för att återkomma till platsen.
http://msdn2.microsoft.com/en-us/library/2yc9d57t.aspx?ref=iizle.net
Ett annat tips som du berör.
<b>så utförs en massa kod och listboxen rensas och läggs ut på nytt,</b>
Gör List1.Visble = False när den koden körs + ett DoEvent
och rakt under List1.Visible = True när operationen är utförd,snabbt och flickerfritt