|
Recht praktisch ist es, wenn die Liste einer ComboBox gleich von alleine aufklappt, sobald die ComboBox den Fokus erhält. Eine Visual Basic-ComboBox bietet Ihnen keine Methode oder Einstellung, um dies zu erreichen. Es gibt allerdings die API-Nachricht CB_SHOWDROPDOWN, die mittels der API-Funktion SendMessage an die ComboBox gesendet werden kann. Sie ist für ein programmgesteuertes Öffnen und Schließen der Liste zuständig.
Die folgende Hilfsfunktion DropDown erledigt das Öffnen der Liste - ihr brauchen Sie lediglich die betreffende ComboBox als Parameter zu übergeben:
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
Public Sub DropDown(ComboBox As ComboBox)
Const CB_SHOWDROPDOWN = &H14F
SendMessage ComboBox.hwnd, CB_SHOWDROPDOWN, True, 0
End Sub
Der Aufruf zum Öffnen beim Fokus-Erhalt erfolgt im GotFocus-Ereignis einer ComboBox oder auch einer ImageCombo aus den Microsoft Common Controls:
Private Sub Combo1_GotFocus()
DropDown Combo1
End Sub
oder
Private Sub ImageCombo1_GotFocus()
DropDown ImageCombo1
End Sub
|