Todd,
You can leave the color setting code in the Refresh() method, it is about the best place for it. The Refresh() method is not automatically called anywhere. All you have to do is call the thisform.Refresh() method when the other value is changed.
>The problem is that if I put code into the objects refresh method, the color doesn't always update when the value of the textbox changes.