property Items.RootCount as Long

Retrieves the number of root objects in the Items collection.

 TypeDescription 
   Long A long value that indicates the count of root items into Items collection.  

A root item is an item that has no parent (ItemParent() = 0). Use the RootItem property of the Items object to enumerates the root items. Use the AddItem to add root items to the control. Use the InsertItem method to insert child items.

The following VB sample enumerates all root items:

Dim i As Long, n As Long
With Grid1.Items
    n = .RootCount
    For i = 0 To n - 1
        Debug.Print .CellValue(.RootItem(i), 0)
    Next
End With

The following C++ sample enumerates all root items:

#include "Items.h"
CItems items = m_grid.GetItems();
for ( long i = 0 ; i < items.GetRootCount(); i++ )
{
	COleVariant vtItem( items.GetRootItem(i) ), vtColumn( long(0) );
	OutputDebugString( V2S( &items.GetCellValue( vtItem, vtColumn ) ) );
}

where the V2S function converts a VARIANT expression to a string expression and looks like:

static CString V2S( VARIANT* pv, LPCTSTR szDefault = _T("") )
{
	if ( pv )
	{
		if ( pv->vt == VT_ERROR )
			return szDefault;

		COleVariant vt;
		vt.ChangeType( VT_BSTR, pv );
		return V_BSTR( &vt );
	}
	return szDefault;
}

if you are using MFC, or

static string V2S( VARIANT* pv, LPCTSTR szDefault = _T("") )
{
	if ( pv )
	{
		if ( pv->vt == VT_ERROR )
			return szDefault;

		CComVariant vt;
		if ( SUCCEEDED( vt.ChangeType( VT_BSTR, pv ) ) )
		{
			USES_CONVERSION;
			return OLE2T(V_BSTR( &vt ));
		}
	}
	return szDefault;
}

if you are using STL.

The following VB.NET sample enumerates all root items:

With AxGrid1.Items
    Dim i As Integer
    For i = 0 To .RootCount - 1
        Debug.Print(.CellValue(.RootItem(i), 0))
    Next
End With

The following C# sample enumerates all root items:

for (int i = 0; i < axGrid1.Items.RootCount; i++)
{
	object strValue = axGrid1.Items.get_CellValue(axGrid1.Items.get_RootItem(i), 0);
	System.Diagnostics.Debug.WriteLine(strValue != null ? strValue.ToString() : "");
}

The following VFP sample enumerates all root items:

with thisform.Grid1.Items
	local i
	for i = 0 to .RootCount - 1
		.DefaultItem = .RootItem(i)
		wait window nowait .CellValue(0,0)
	next
endwith

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