protected void InvokeLayout()
{
// We want a layout to occur but not until the message loop
// is spun. So this will happen before any painting because
// paint messages only occur when the message queue is empty.
if (IsHandleCreated && !IsDisposed)
BeginInvoke(_layoutCall);
}