Thanks for the responses. I was thinking along the lines of Jari's solution. That involves adding an event handler for each control which isn't too much work.
I like Ben's solution because it handles the case where a user makes a change and then undoes the change leaving the control with no change. It also doesn't require adding extra event handling. The problem I see with the extra event handling is that someday someone will add or modify a control and forget about the event handling and then user input will get lost.

