常规为winform框架添加控件的方式(最简单的方式)是通过Visual Studio图形界面直接拖拽控件至窗体中。
本次通过代码的方式写了个Panel和Label,意图显示出来:
1 Label label0 = new Label(); 2 label0.Location = new Point(100, 100); 3 label0.Size = new Size(100, 5); 4 label0.BackColor = Color.Red; 5 label0.Show();
运行测试发现,控件并未如所想,界面并未看见该label10控件。
查询资料,未显示的原因在于没给控件对象设Parent属性。
页面所有的窗口(包括所有的子窗口以及容器窗口),以组合模式的形式保存在window对象中。绘图过程中,遍历window内部保存的所有窗口依次绘图。
因此,未设置parent父窗口的控件对象无法被遍历到,从而不会绘图显示出来。
为了解决这个问题,正确的设置方式如下。
1 Label label0 = new Label(); 2 label0.Location = new Point(100, 100); 3 label0.Size = new Size(100, 5); 4 label0.BackColor = Color.Red; 5 label0.Parent = this; //或其他已添加至window组合中的容器窗口 6 label0.Show();