今天碰到一个非常奇怪的问题,问题的描述如下:
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用系统的控件也可以解决问题
如果有哪位朋友碰到过这种情况或者知道可能的原因,请留言。