To add to Roberto's suggestion. I use an asynchronous timer to do a lot of UI status updates in my programs. I just throw the code to update the clock into the timer callback and it works beautifully.
The reason I do this is because I use multithreading to keep the various tasks in my program from slowing the user interface down to the pace of a slug. Even if you are not explicitly using multithreading, the asynchronous timer is a good approach because it runs in its own thread and won't get bogged down by other things that are going on in your program. Throw a ProcessSystemEvents() call into the timer callback and make the timer interval say 500 mS and the user interface will always respond in a timely manner.
Martin Fredrickson
Test Engineer
Northrop Grumman
Advanced Systems and Products
San Diego, CA 92128