今天碰到一個非常奇怪的問題,問題的描述如下:
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用系統的控件也可以解決問題
如果有哪位朋友碰到過這種情況或者知道可能的原因,請留言。