event MouseDown (Button as Integer, Shift as Integer, X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS)

Occurs when the user presses a mouse button.

TypeDescription
Button as Integer An integer that identifies the button that was pressed to cause the event.
Shift as Integer An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys when the button specified in the button argument is pressed or released.
X as OLE_XPOS_PIXELS A single that specifies the current X location of the mouse pointer. The X value is always expressed in container coordinates.
Y as OLE_YPOS_PIXELS A single that specifies the current Y location of the mouse pointer. The Y value is always expressed in container coordinates.

Use a MouseDown or MouseUp event procedure to specify actions that will occur when a mouse button is pressed or released. Unlike the Click and DblClick events, MouseDown and MouseUp events lets you distinguish between the left, right, and middle mouse buttons. You can also write code for mouse-keyboard combinations that use the SHIFT, CTRL, and ALT keyboard modifiers. Use the ItemFromPoint property to determine the cell or the item over the cursor. Use the CloseOnDblClick property to specify whether the drop down portion of the control is closed when user clicks or double clicks the list. Use the Change event to notify your application that user clicks an item or presses the ENTER key. Use the SelectionChange event  to notify your application that a new item is selected.

The following VB sample displays the cell from the cursor:

Private Sub ComboBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With ComboBox1
        Dim i As Long, c As Long, hit As EXCOMBOBOXLibCtl.HitTestInfoEnum
        i = .ItemFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY, c, hit)
        If Not (i = 0) Then
            With .Items
                Debug.Print .CellCaption(i, c)
            End With
        End If
    End With
End Sub

The following C++ sample displays the cell from the cursor:

void OnMouseDownCombobox1(short Button, short Shift, long X, long Y) 
{
	long c = 0, hit = 0, i = m_combobox.GetItemFromPoint( X, Y, &c, &hit );
	if ( i != 0 )
		OutputDebugString( V2S( &m_combobox.GetItems().GetCellCaption(COleVariant(i), COleVariant(c) ) ) );
}

The following VB.NET sample displays the cell from the cursor:

Private Sub AxComboBox1_MouseDownEvent(ByVal sender As Object, ByVal e As AxEXCOMBOBOXLib._IComboBoxEvents_MouseDownEvent) Handles AxComboBox1.MouseDownEvent
    With AxComboBox1
        Dim i As Integer, c As Integer, hit As EXCOMBOBOXLib.HitTestInfoEnum
        i = .get_ItemFromPoint(e.x, e.y, c, hit)
        If (i >= 0) Then
            Debug.WriteLine(.Items.CellCaption(i, c))
        End If
    End With
End Sub

The following C# sample displays the cell from the cursor:

private void axComboBox1_MouseDownEvent(object sender, AxEXCOMBOBOXLib._IComboBoxEvents_MouseDownEvent e)
{
	EXCOMBOBOXLib.HitTestInfoEnum h;
	int c = 0, i = axComboBox1.get_ItemFromPoint(e.x, e.y, out c, out h);
	if (i != 0)
		System.Diagnostics.Debug.WriteLine(axComboBox1.Items.get_CellCaption(i, c).ToString());
}

The following VFP sample displays the cell from the cursor:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

With thisform.ComboBox1
        local c, hit
        c = 0
        hit = 0
        .Items.DefaultItem = .ItemFromPoint(X , Y, @c, @hit)
        If (.Items.DefaultItem >= 0) Then
            wait window nowait .Items.CellCaption(0, c)
        EndIf
EndWith

Syntax for MouseDown event, /NET version, on:

private void MouseDownEvent(object sender,short Button,short Shift,int X,int Y)
{
}

Private Sub MouseDownEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles MouseDownEvent
End Sub

Syntax for MouseDown event, /COM version, on:

private void MouseDownEvent(object sender, AxEXCOMBOBOXLib._IComboBoxEvents_MouseDownEvent e)
{
}

void OnMouseDown(short Button,short Shift,long X,long Y)
{
}

void __fastcall MouseDown(TObject *Sender,short Button,short Shift,int X,int Y)
{
}

procedure MouseDown(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
end;

procedure MouseDownEvent(sender: System.Object; e: AxEXCOMBOBOXLib._IComboBoxEvents_MouseDownEvent);
begin
end;

begin event MouseDown(integer Button,integer Shift,long X,long Y)
end event MouseDown

Private Sub MouseDownEvent(ByVal sender As System.Object, ByVal e As AxEXCOMBOBOXLib._IComboBoxEvents_MouseDownEvent) Handles MouseDownEvent
End Sub

Private Sub MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
End Sub

Private Sub MouseDown(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Long,ByVal Y As Long)
End Sub

LPARAMETERS Button,Shift,X,Y

PROCEDURE OnMouseDown(oComboBox,Button,Shift,X,Y)
RETURN

Syntax for MouseDown event, /COM version (others), on:

<SCRIPT EVENT="MouseDown(Button,Shift,X,Y)" LANGUAGE="JScript">
</SCRIPT>

<SCRIPT LANGUAGE="VBScript">
Function MouseDown(Button,Shift,X,Y)
End Function
</SCRIPT>

Procedure OnComMouseDown Short llButton Short llShift OLE_XPOS_PIXELS llX OLE_YPOS_PIXELS llY
	Forward Send OnComMouseDown llButton llShift llX llY
End_Procedure

METHOD OCX_MouseDown(Button,Shift,X,Y) CLASS MainDialog
RETURN NIL

void onEvent_MouseDown(int _Button,int _Shift,int _X,int _Y)
{
}

function MouseDown as v (Button as N,Shift as N,X as OLE::Exontrol.ComboBox.1::OLE_XPOS_PIXELS,Y as OLE::Exontrol.ComboBox.1::OLE_YPOS_PIXELS)
end function

function nativeObject_MouseDown(Button,Shift,X,Y)
return