Actually if you use Application.DoEvents() you can get the form to catch up on its pending events before a method ends.
The problem is that WinForms are single threaded. While you're running code the app is busy. If you update the .Text property .Net invalidates the control to have it redraw, but the redraw won't happen until the event loop picks back up.
For those sort of things DoEvents() is your friend, but Refresh() usually is more efficient because it only updates the one control specifically, where DoEvents can cause a whoel bunch of backed up operations to happen.
+++ Rick ---
>Potentially stupid question, but does that "no refresh until method ends" apply to all of .Net ?
>
>How would that tie in with displaying say a progress meter or other such user feedback control?
>
>TIA,
>Simon