碰到了,Google了下,找到答案,因为没有中文的,所以做个记录。
具体E文地址:http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/dfa1163c-89b4-4111-b36b-4474824d2c7c
当用户控件从一个panel或者其他父容器移除后,会出现此问题。此时,窗口焦点丢失,不能点击,也不能做任何操作。
出现此问题的原因是,移除控件后,控件中的消息队列并没有处理完。
所以要在父容器的Remove前增加Application.DoEvents(),然后移除释放。
E文上写的
frmFun.Dispose();
Application.DoEvents();
this.panel4.Controls.Remove(frmFun);
是不对的,正确的应该是
Application.DoEvents();
this.panel4.Controls.Remove(frmFun);
frmFun.Dispose();