Right, Paul had the right answer. You'll also find (which may be a better solution, since the .refresh method doesn't give windows a chance to update anything other than the textbox) that the doevents function will also work. Doevents, unlike .refresh, gives your app a chance to process events passed by the user. An example of this, is to stick another button on that form, for "quit", and have it have some unload and end code (like so):
for each XFrm in Forms
unload XFrm
next XFrm
' /* Code Should Never Reach Here, But Just In Case */
End
Then, click your button to make the words change, and right after, click the Quit button. With the .refresh method, you'll see that it takes a lag time before ending the application. If you use the Doevents function, your application will respond more promptly to device control. The example I have here isn't as extreme as it could be (say, by having another textbox in which you type in at the same time), but it's enough to show you the difference between .refresh and doevents.
TxtWords.Text = "Hello"
DoEvents
Sleep 300
TxtWords.Text = "Cookie"
DoEvents
Sleep 300
TxtWords.Text = "Train"
DoEvents
Sleep 300
TxtWords.Text = "Cat"