Avatar billede aagem Nybegynder
06. januar 2002 - 16:58 Der er 10 kommentarer og
1 løsning

programstyring af tekst i listbox

Jeg ønsker, at skrive kode for eksempel i en timer, så teksten i en listbox scroller gennem listboxvinduet med en hastighed fastsat i tmer.interval ved hjælp af en scrollbar.
Altså, hvordan kan fingeren i listboxen vertikale scrollbar programmeres.
Avatar billede tjacob Juniormester
06. januar 2002 - 17:26 #1
Når du starter timeren (f.eks. med en knap) så sæt en global variabel lIndex = 0.

Hvis din listbox hedder List1:

I timeren kode skriver du:

    List1.ListIndex = lIindex
    lIndex = lIndex + 1
    If lIndex = \'antal poster i din listbox\' Then Timer1.Enabled = False

I stedet for at stoppe timeren i den sidste linie kan du jo også sætte lIndex til 0 igen, så starter scrollingen forfra.

MVH tjacob
Avatar billede tjacob Juniormester
06. januar 2002 - 17:30 #2
\'antal poster i din listbox\' erstattes med List1.ListCount
Avatar billede ea_data Nybegynder
06. januar 2002 - 17:56 #3
Der menes nok
List1.ListCount-1
Avatar billede tjacob Juniormester
06. januar 2002 - 18:01 #4
Nej, for der er lagt en til i linien før ;)
Avatar billede aagem Nybegynder
06. januar 2002 - 22:20 #5
Tak for det hurtige svar MEN
En lignende løsning havde jeg fundet ved at bruge list1.selected således i en timer

If linjenr < List1.ListCount - 1 Then
      linjenr = linjenr + 1
      List1.Selected(linjenr) = True
Else
      Timer.Enabled = False
End If

Problemet er bare, at i begge tilfælde markeres den nederste linie i listboxen.
Hvordan forhindre dette ?
Avatar billede tjacob Juniormester
07. januar 2002 - 11:57 #6
Det er fordi du lægger 1 til index (linie 2) INDEN du selecter. Det betyder at du aldrig får valgt index(0). Byt om på linie 2 og 3.

Men jeg tror så, at du vil komme til at mangle det sidste item. Jeg vil mene, at mit svar ar bedre (og simplere).  ;-)

/tjacob

Avatar billede tjacob Juniormester
07. januar 2002 - 12:10 #7
Det med den nederste linie kan ikke (såvidt jeg kan se) umiddelbart løses. Du kan aldrig scrolle længere ned i en listbox end der er items.

tjacob
Avatar billede tjacob Juniormester
07. januar 2002 - 12:12 #8
PS der er en lille fejl i mit forslag:
linie 1 List1.ListIndex = lIindex har to i\'er i det sidste lIindex.
Avatar billede aagem Nybegynder
07. januar 2002 - 15:18 #9
Jeg tror du har misforstået mit problem.
Problemet er, at den nederste viste linie i listboksen( ved begge metoder) på skærmen markeres, således at scrollingen fremstår blinkende, når der scrolles.
Avatar billede tjacob Juniormester
07. januar 2002 - 20:45 #10
Ja, det gjorde jeg vist.
Dette løses ved at sætte List1.ListIndex = -1 for eksempel som den sidste linie i timer-koden.

MVH tjacob
Avatar billede aagem Nybegynder
07. januar 2002 - 22:10 #11
Tak skal du have. Nu virker det.
Jeg kunne også løse problemet ved at dække listboksen delvis af med en picturebox, men det er jo ikke en god løsning. Så mange tak.
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