问题描述:使用TableLayoutPanel
控件,内部动态添加dgv控件时,在初始化时致dgv长宽变形。
问题代码:
Panel pnl = new Panel();
pnl.Controls.Add(dgv);//pnl是dgv的容器
tlp.Controls.Add(pnl, i, 0);//tlp是pnl的容器
解决方案:先加载外部元件,再加载内部元件。(从外向内依次进行)
正确代码:
Panel pnl = new Panel();
tlp.Controls.Add(pnl, i, 0);//tlp先加载pnl
pnl.Controls.Add(dgv);//pnl再加载dgv
补充:建议在界面的Load事件中完成控件的布局工作,否则也有界面变形的风险。