winform代码定义的控件无法显示

常规为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();

 

posted @ 2016-07-23 09:32  Xinxin_Brian  阅读(422)  评论(0编辑  收藏  举报