Kan man skrolla i en listruta Lägg ut en listruta som behövs scrollas i. Detta gör du med egenskapen List1.TopIndex. Här är ett exempel som scrollar listan up och ned en item i taget. Varför använda API? Gissar på att du inte kände till TopIndex egenskapen. Tror den är ny sedan vb6. Har lite större valmöjligheter med API'n. Sen är det ungefär lika mycket att skriva. Det är nog mer en smaksak.listruta skrolla
med hjälp av ett kommando
i en koden? Hur se isåfall ett
sådant kommando ut? Sv: listruta skrolla
"True" i form Keypreview, gå att använda en hook i stället om så önskas.
Starta dyngan och tryck på "s" så scrollar listboxen nedåt.
Jag la även med värden för att scrolla horisontellt och uppåt.
<code>
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_VSCROLL As Long = &H115
Private Const WM_HSCROLL As Long = &H114
Private Const SB_LINEDOWN = 1
Private Const SB_LINEUP = 0
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 83 Then
Dim lngDummy As Long
lngDummy = SendMessage(List1.hwnd, WM_VSCROLL, SB_LINEDOWN, Nothing)
KeyCode = 0
End If
End Sub
Private Sub Form_Load()
With List1
.AddItem "Item 1"
.AddItem "Item 2"
.AddItem "Item 3"
.AddItem "Item 4"
.AddItem "Item 5"
.AddItem "Item 6"
.AddItem "Item 7"
.AddItem "Item 8"
.AddItem "Item 9"
.AddItem "Item 10"
End With
End Sub
</code>Sv: listruta skrolla
<code>
Option Explicit
Private Sub Command1_Click()
If List1.TopIndex > 0 Then
List1.TopIndex = List1.TopIndex - 1
End If
End Sub
Private Sub Command2_Click()
If List1.TopIndex < List1.ListCount - 1 Then
List1.TopIndex = List1.TopIndex + 1
End If
End Sub
Private Sub Form_Load()
Dim Index As Long
For Index = 1 To 20
List1.AddItem "Item " & Index
Next
End Sub
</code>Sv: listruta skrolla
Sv: listruta skrolla