I found something that works, but I'd like to know if this was really the preferred solution since it seems a bit awkward to me. However, this solution does support the message pump hypothesis I mentioned in my question. In the constructor for the form that I want to display, I start up an auto-reset Timer that fires every 200 (for now) ms. In the timer event handler, I call Application.DoEvents(). That's all it took... a surrogate message pump! :cool: Additionally, the Show, Hide, Close, and content update actions all had to be wrapped with Invoke boilerplate, but that makes sense. Wildly simple, but was there a better way? If I had two forms to show, would each require its own timer solution?