property List.ColumnFromPoint (X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS) as Long
Retrieves the column from point.

 TypeDescription 
   X as OLE_XPOS_PIXELS A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates.  
   Y as OLE_YPOS_PIXELS A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates.  
   Long A long expression that indicates the column's index, or -1 if there is no column at the point. The property gets a negative value less or equal with 256, if the point is in the area between columns where the user can resize the column.   
Use the ColumnFromPoint property to access the column from the point specified by the {X,Y} coordinates. The ColumnFromPoint property gets the index of the column when the cursor hovers the control's header bar. The X and Y coordinates are expressed in client coordinates, so a conversion must be done in case your coordinates are relative to the screen or to other window. If the X parameter is -1 and Y parameter is -1 the ColumnFromPoint property determines the index of the column from the cursor. Use the ItemFromPoint property to retrieve the item from cursor. The control fires the ColumnClick event when user clicks a column.  Use the SortOnClick property to specify the operation that control odes when user clicks the control's header. 

The following VB sample prints the caption of the column from the point:

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With List1
        Dim c As Long
        c = .ColumnFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If (c >= 0) Then
            With .Columns(c)
                Debug.Print .Caption
            End With
        End If
    End With
End Sub

The following C++ sample prints the caption of the column from the point:

#include "Columns.h"
#include "Column.h"
void OnMouseMoveList1(short Button, short Shift, long X, long Y) 
{
	long nColIndex = m_list.GetColumnFromPoint( X, Y );
	if ( nColIndex >= 0 )
	{
		CColumn column = m_list.GetColumns().GetItem( COleVariant( nColIndex ) );
		OutputDebugString( column.GetCaption() );
	}
}

The following VB.NET sample prints the caption of the column from the point:

Private Sub AxList1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXLISTLib._IListEvents_MouseMoveEvent) Handles AxList1.MouseMoveEvent
    With AxList1
        Dim i As Integer = .get_ColumnFromPoint(e.x, e.y)
        If (i >= 0) Then
            With .Columns(i)
                Debug.WriteLine(.Caption)
            End With
        End If
    End With
End Sub

The following C# sample prints the caption of the column from the point:

private void axList1_MouseMoveEvent(object sender, AxEXLISTLib._IListEvents_MouseMoveEvent e)
{
	int i = axList1.get_ColumnFromPoint( e.x,e.y );
	if ( i >= 0 )
		System.Diagnostics.Debug.WriteLine( axList1.Columns[i].Caption  );
}

The following VFP sample prints the caption of the column from the point:

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

with thisform.List1
	i = .ColumnFromPoint( x, y )
	if ( i >= 0 )
		wait window nowait .Columns(i).Caption
	endif
endwith

 


Send comments on this topic.
1999-2017 Exontrol.COM, Software. All rights reserved.