>I tried debugging a little more by moving the call to the "UpdateAccumulators" method from the Interactivechange method to the valid() as suggested. It still seems to be "one click" behind. The accumulators don't update until clicking another row in the grid.
>
>I put message boxes in each of the involved methods to ensure they were firing as expected. They did.
>
>I watched step by step in the debugger and the code acts exactly as expected and all accumulators get updated and display the expected values.
>
>When I run the code outside of the debugger, each of the message boxes fire indicating to me the code has passed through each of the methods, but the accumulators don't get updated.
>
>I am rather baffled at this point.
Messagebox() messes with your event chain. It takes focus, causing the grid (actually, the whole form) to lose focus... so the observer influences the observed event. You may try less invasive methods, like debugout, or event logging, or tracing. Breakpoint in a debugger also takes focus away, which may cause some side effects.
Which is one of the reasons I don't remember how, and whether at all, I have solved that one back in 2003.