>> To trap row change by user, remember Grid.RowHeight property in Grid.MouseDown event and compare it with new value in Grid.MouseUp event. If RowHeight is changed during mous click process, fire your code for case grid row height is changed by user. <<
Could you use BINDEVENT() to the Grid RowHeight?
That way you don't need before and after, you are just called when it changes.
BINDEVENT() is perhaps a little understatement, maybe BINDPEM() would be better?
You can bind to a property change, method call or event happening.