How to Force a DropDown and Retract of the List in a Combo Box
ID: Q124057
|
The information in this article applies to:
-
Microsoft Visual Basic Standard and Professional Editions for Windows, versions 2.0, 3.0
SUMMARY
This article shows you how to send a message to the Combo box to force the
List portion to drop or retract at any time.
Usually, to drop the List portion of a Combo box, you click the dropdown
button located to the right of the Combo's edit box, or you can press the
F4 key when the control has the focus. To have the Combo box retract the
List portion, you click the dropdown button again, use the mouse or
keyboard to choose an item from the list, press the ESC or F4 key, or click
anywhere else on the screen.
MORE INFORMATION
To send the CB_SHOWDROPDOWN message to a Combo box of Style 0 - Dropdown
Combo or 2 - Dropdown List, call the SendMessage API function. If the
wParam parameter is any non-zero integer, the List will drop. If wParam
equals 0, the List will retract. Note that a Combo box of Style 1 (Simple
Combo) always has its list visible.
Step-by-Step Example
- Start a new project in Visual Basic (ALT, F, N). Form1 is created by
default.
- Add the following statements to the General Declarations section of
Form1:
' Enter the following two lines as one, single line:
Declare Function SendMessage Lib "User" (ByVal hWnd As Integer,
ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As Long
Const WM_USER = &H400
Const CB_SHOWDROPDOWN = (WM_USER + 15)
- Add the following code to the Form's Load event:
Sub Form_Load ()
combo1.AddItem "item# 1"
combo1.AddItem "item# 2"
combo1.AddItem "item# 3"
combo1.AddItem "item# 4"
End Sub
- Place a Combo box (Combo1) on Form1.
- Place a Command button (Command1) on Form1, and set its Caption property
to DropDown.
- Add the following code to the Command1 button's Click event:
Sub Command1_Click ()
x% = SendMessage(combo1.hWnd, CB_SHOWDROPDOWN, 1, 0&)
End Sub
- Place a second Command button (Command2) on Form1, and set its Caption
property to Retract.
- Add the following code to the Command2 button's Click event:
Sub Command2_Click ()
x% = SendMessage(combo1.hWnd, CB_SHOWDROPDOWN, 0, 0&)
End Sub
- Press the F5 key to run the program. Click the DropDown button to show
the Combo box list, and click the Retract button to remove it.
Notes
If the form is moved or resized while the List is down, the List will not
move with the form. To make it behave like the standard Combo Box, add the
following code to the Form's paint and resize events to force the
retraction of the list:
Sub Form_Paint ()
x% = SendMessage(combo1.hWnd, CB_SHOWDROPDOWN, 0, 0&)
End Sub
Sub Form_Resize ()
x% = SendMessage(combo1.hWnd, CB_SHOWDROPDOWN, 0, 0&)
End Sub
You don't have to do this, if you want the List to be always on top, even
when the form is moved or resized. The List can be retracted only by
clicking the "Rectract" Button or choosing an item from the list.
Additional query words:
2.00 3.00 ComboBox
Keywords :
Version :
Platform :
Issue type :
|