devxlogo

Open the list portion of a ComboBox control

Open the list portion of a ComboBox control

To programmatically open and close the list portion of a ComboBox control, all you need is sending the CB_SHOWDROPDOWN message to the control. Here is a routine that encapsulate the SendMessage API function:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _    hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _    lParam As Any) As LongConst CB_SHOWDROPDOWN = &H14FConst CB_GETDROPPEDSTATE = &H157    ' Show or hide the list portion of a combobox    Sub ComboBoxOpenList(cbo As ComboBox, Optional showIt As Boolean = True)    SendMessage cbo.hwnd, CB_SHOWDROPDOWN, showIt, ByVal 0&End Function

Retrieving the current visibility state of the list portion of a ComboBox can be done by sending a message, too. Here is a wrapper function that does it all:

' Returns True if the list portion of a combobox is visibleFunction ComboBoxIsListVisible(cbo As ComboBox) As Boolean    ComboBoxIsListVisible = SendMessage(cbo.hwnd, CB_GETDROPPEDSTATE, 0, _        ByVal 0&)End Function

devx-admin

Share the Post: