Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz p5quser #51315 üzenetére

    Szia,

    Ezt hoztam össze. A KeyDown-al nem, de a KeyUp-al megy amit akarsz.
    Annyit kacifántoztam, hogy csak az első UP esetén ugrik a legutolsó elemre, hogy lehessen felfelé pörgetni a listát. Ehhez kell egy globális változó, bKeyUp nálam.

    Dim bKeyUp As Boolean 'igaz ha utoljára felfelé nyíl volt használva

    Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    With ComboBox1
    If KeyCode = vbKeyUp Then
    'ha már nyomtak felfelé nyilat akkor kiléphetünk innen
    If bKeyUp Then Exit Sub

    'ha nem nyomtak akkor ugrunk a végére és beállítjuk hogy volt már felfelé nyíl használva
    .ListIndex = .ListCount - 1
    bKeyUp = True
    Else
    'ha más billentyüt nyomtak akkor elfelejtük hogy volt már felfelé nyíl nyomva
    bKeyUp = False
    End If
    End With

    End Sub

    Private Sub UserForm_Initialize()

    bKeyUp = False

    With ComboBox1
    .AddItem "Géza"
    .AddItem "Paula"
    .AddItem "Kriszta"
    .AddItem "Aladár"
    .AddItem "Blöki"
    .AddItem "Maffia"
    .AddItem "Mz/X"
    .AddItem "Máris szomszéd"

    .ListIndex = 0
    End With

    End Sub

    üdv

Új hozzászólás Aktív témák