lparameters DoNotGoDownIfGrid local _ActiveControl, _ActiveColumn, i, x if( type('thisform.ActiveControl') == T_UNDEFINED ) return .Null. else _ActiveControl = thisform.ActiveControl endif if( !(type('_ActiveControl') == T_OBJECT ) ) suspend endif if( !DoNotGoDownIfGrid and (Proper(_ActiveControl.BaseClass) == 'Grid') ) _ActiveColumn = _ActiveControl.ActiveColumn if( !empty(_ActiveColumn) ) for i = 1 to _ActiveControl.ColumnCount x = _ActiveControl.Columns[i] if( x.ColumnOrder == _ActiveColumn ) exit endif endfor for i = 1 to x.ControlCount if ( x.Controls[i].Name == x.CurrentControl ) _ActiveControl = x.Controls[i] exit endif endfor endif endif return _ActiveControl(2) add a method to the form's class or write an udf
lparameters Obj local ac ac = thisform.GetActiveControl() if( !isnull(ac) ) if( compobj(ac, Obj) ) return .t. endif endif return .F.(3) Does this object have the focus ?
if( thisform.IsActiveControl(this) ) && yes endif