Winform异步初始化UserControl的问题

今天碰到一个非常奇怪的问题,问题的描述如下:

1. 新建了一个winform窗体

2. 新建一个UserControl

3. UserControl中添加一个panel和一个checkbox,checkbox是panel的子控件,panel是userControl的子控件(checkbox和panel都是自己重新封装的)

3. 在窗体Shawn事件中起一个线程,异步初始化UserControl

4. 当代码走到UserControl设计器中的this.panel1.PerformLayout();时直接跳转到了Load事件

最后经过多次测试,发现一下几种处理可以解决问题,但是问题的原因我自己也没有搞清楚:

1. 把this.panel1.PerformLayout();这句去掉可以解决问题

2. checkbox的属性autosize不设置为true也可以解决问题

3. checkbox用系统的控件也可以解决问题

如果有哪位朋友碰到过这种情况或者知道可能的原因,请留言。

原文地址:https://www.cnblogs.com/sauronKing/p/5910601.html