Type | Description | |||
Item as Variant | A long expression that indicates the handle of the item where the cell is, or 0. If the Item parameter is 0, the ColIndex parameter must indicate the handle of the cell. | |||
ColIndex as Variant | A long expression that indicates the index of the column where a cell is divided, or a long expression that indicates the handle of the cell being divided, if the Item parameter is missing or it is zero. | |||
Variant | A long expression that indicates the handle of the parent cell. |
The following VB sample determines whether the cell is a master cell or an inner cell:
Private Function isMaster(ByVal g As EXGRIDLibCtl.Grid, ByVal h As EXGRIDLibCtl.HITEM, ByVal c As Long) As Boolean With g.Items isMaster = .CellParent(h, c) = 0 End With End Function
The following VB sample determines the master cell ( the cell from where the splitting starts ):
Private Function getMaster(ByVal g As EXGRIDLibCtl.Grid, ByVal h As EXGRIDLibCtl.HITEM, ByVal c As Long) As EXGRIDLibCtl.HCELL With g.Items Dim r As EXGRIDLibCtl.HCELL r = c If Not (h = 0) Then r = .ItemCell(h, c) End If While Not (.CellParent(, r) = 0) r = .CellParent(, r) Wend getMaster = r End With End Function
The following C++ sample determines whether the cell is a master cell or an inner cell:
#include "Items.h" static long V2I( VARIANT* pv, long nDefault = 0 ) { if ( pv ) { if ( pv->vt == VT_ERROR ) return nDefault; COleVariant vt; vt.ChangeType( VT_I4, pv ); return V_I4( &vt ); } return nDefault; } BOOL isMaster( CGrid grid, long hItem, long nColIndex ) { return V2I( &grid.GetItems().GetCellParent( COleVariant( hItem ), COleVariant( nColIndex ) ) ) == 0; }
The following C++ sample determines the master cell ( the cell from where the splitting starts ):
long getMaster( CGrid grid, long hItem, long nColIndex ) { COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR; CItems items = grid.GetItems(); long r = nColIndex; if ( hItem ) r = items.GetItemCell( hItem, COleVariant( nColIndex ) ); long r2 = 0; while ( r2 = V2I( &items.GetCellParent( vtMissing, COleVariant( r ) ) ) ) r = r2; return r; }
The following VB.NET sample determines whether the cell is a master cell or an inner cell:
Private Function isMaster(ByVal g As AxEXGRIDLib.AxGrid, ByVal h As Long, ByVal c As Long) As Boolean With g.Items isMaster = .CellParent(h, c) = 0 End With End Function
The following VB.NET sample determines the master cell ( the cell from where the splitting starts ):
Shared Function getMaster(ByVal g As AxEXGRIDLib.AxGrid, ByVal h As Integer, ByVal c As Integer) As Integer With g.Items Dim r As Integer r = c If Not (h = 0) Then r = .ItemCell(h, c) End If While Not (.CellParent(, r) = 0) r = .CellParent(, r) End While getMaster = r End With End Function
The following C# sample determines whether the cell is a master cell or an inner cell:
private bool isMaster(AxEXGRIDLib.AxGrid grid, int h, int c) { return Convert.ToInt32(grid.Items.get_CellParent(h, c)) != 0; }
The following C# sample determines the master cell ( the cell from where the splitting starts ):
private long getMaster(AxEXGRIDLib.AxGrid g, int h, int c) { int r = c, r2 = 0; if ( h != 0 ) r = Convert.ToInt32( g.Items.get_ItemCell(h,c) ); r2 = Convert.ToInt32( g.Items.get_CellParent(null, r)); while ( r2 != 0) { r = r2; r2 = Convert.ToInt32( g.Items.get_CellParent(null, r)); } return r; }