property Items.ItemChild (Item as HITEM) as HITEM

Retrieves the first child item of a specified item.

 TypeDescription 
   Item as HITEM A long expression that indicates the item's handle.  
   HITEM A long expression that indicates the item's handle that indicates the first child item of the Item  

If the ItemChild property gets 0, the item has no child items. Use the ItemChild property to get the first child of an item. The NextVisibleItem or NextSiblingItem gets the next visible, sibling item. Use the ChildCount property to count the number of child items. Use the ItemHasChildren property to built a virtual grid. A virtual grid loads items when the user expands an item. Use the ItemParent property to retrieve the handle of the parent item. The control displays a +/- sign to parent items, if the HasButtons property is not zero, the ItemChild property is not empty, or the ItemHasChildren property is True.

The following VB function recursively enumerates the item and all its child items:

Sub RecItem(ByVal c As EXGRIDLibCtl.Grid, ByVal h As HITEM)
    If Not (h = 0) Then
        Dim hChild As HITEM
        With c.Items
            Debug.Print .CellCaption(h, 0)
            hChild = .ItemChild(h)
            While Not (hChild = 0)
                RecItem c, hChild
                hChild = .NextSiblingItem(hChild)
            Wend
        End With
    End If
End Sub

The following C++ function recursively enumerates the item and all its child items:

void RecItem( CGrid* pGrid, long hItem )
{
	COleVariant vtColumn( (long)0 );
	if ( hItem )
	{
		CItems items = pGrid->GetItems();

		CString strCaption = V2S( &items.GetCellValue( COleVariant( hItem ), vtColumn ) ), strOutput;
		strOutput.Format( "Cell: '%s'\n", strCaption );
		OutputDebugString( strOutput );

		long hChild = items.GetItemChild( hItem );
		while ( hChild )
		{
			RecItem( pGrid, hChild );
			hChild = items.GetNextSiblingItem( hChild );
		}
	}
}

The following VB.NET function recursively enumerates the item and all its child items:

Shared Sub RecItem(ByVal c As AxEXGRIDLib.AxGrid, ByVal h As Integer)
    If Not (h = 0) Then
        Dim hChild As Integer
        With c.Items
            Debug.WriteLine(.CellCaption(h, 0))
            hChild = .ItemChild(h)
            While Not (hChild = 0)
                RecItem(c, hChild)
                hChild = .NextSiblingItem(hChild)
            End While
        End With
    End If
End Sub

The following C# function recursively enumerates the item and all its child items:

internal void RecItem(AxEXGRIDLib.AxGrid  grid, int hItem)
{
	if (hItem != 0)
	{
		EXGRIDLib.Items items = grid.Items;
		object caption = items.get_CellValue( hItem, 0 );
		System.Diagnostics.Debug.WriteLine(caption != null ? caption.ToString() : "");

		int hChild = items.get_ItemChild(hItem);
		while (hChild != 0)
		{
			RecItem(grid, hChild);
			hChild = items.get_NextSiblingItem(hChild);
		}
	}
}

The following VFP function recursively enumerates the item and all its child items ( recitem method ):

LPARAMETERS h

with thisform.Grid1
    If ( h != 0 ) Then
        local hChild
        With .Items
        	.DefaultItem = h
            wait window .CellCaption(0, 0)
            hChild = .ItemChild(h)
            do While (hChild != 0)
                thisform.recitem(hChild)
                hChild = .NextSiblingItem(hChild)
            enddo
        EndWith
    EndIf
endwith

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