How to Close VB Combo Box with ENTER key

ID Number: Q84474

1.00

WINDOWS

Summary:

If you open a combo box and then use the ARROW keys to scroll through

it, pressing ENTER will not close the combo box like a mouse click

will. This is normal behavior. The following example demonstrates how

to make a combo box to close when the ENTER key is pressed.

This information applies to Microsoft Visual Basic programming system

version 1.0 for Windows.

More Information:

The following program makes use of the Windows API SendMessage

function to send the combo box the message to close. This is done only

after the ENTER key is detected in the KeyPress event for the combo

box.

Two Windows API Declare statements must be added to your application.

These can be added either in the GLOBAL.BAS module, or in the general

Declarations section of the form containing the combo box.

Steps to Reproduce Behavior

---------------------------

1. Run Visual Basic, or from the File menu, choose New Project (ALT,

F, N) if Visual Basic is already running. Form1 is created by

default.

2. Add the following two declarations to the global module or the

general Declarations:

Declare Function SendMessage% Lib "user" (ByVal hWnd%, ByVal

wMsg%, ByVal wParam%, ByVal lParam&)

Declare Function GetFocus Lib "user" () As Integer

(Note that the first Declare must be on just one line, not

split across two lines as it is here.)

3. Place a combo box on Form1.

4. Under the KeyPress event for the combo box, place the following

code:

If KeyAscii = 13 Then

Const WM_USER = &h400

Const CB_SHOWDROPDOWN = WM_USER + 15

Combo1.SetFocus

BoxwHND% = GetFocus()

r& = SendMessage(BoxwHND%, CB_SHOWDROPDOWN, 0, 0)

KeyAscii = 0

End If

5. Place a command button on Form1.

6. In the Click event for Command1, place the following code:

' This will add some data to the combo box

for i =1 to 10

Combo1.AddItem STR$(i)

Next i

7. Press F5 to run the application.

8. Choose the Command1 button to fill the combo box.

9. Open the combo box with the mouse, and scroll down with the ARROW keys.

Pressing ENTER will close the Combo Box.

Additional reference words: 1.00