c# – 动态添加标签不会出现

我有一些标签和一堆TextBox,我想动态添加到Panel. TextBoxes添加正常并且完全可见,但标签不是.这是我用来添加标签的代码.

该语言是为.NET 3.5 WinForms应用程序编写的C#.

Label lblMotive = new Label();
lblMotive.Text = language.motive;
lblMotive.Location = new Point(0, 0);

Label lblDiagnosis = new Label();
lblDiagnosis.Text = language.diagnosis;
lblDiagnosis.Location = new Point(20, 0);

panelServiceMotive.Controls.Add(lblMotive);
panelServiceMotive.Controls.Add(lblDiagnosis);

panelServiceMotive是应该显示标签的Panel控件,以及前面提到的TextBoxes.语言是自编语言类的一个对象,它在这里工作正常并且无关紧要.

我希望有足够的信息来获得帮助.

最佳答案 看起来主要问题是您添加到面板的控件的位置. Location属性保存控件左上角相对于父控件左上角的坐标(添加子控件的控件).查看代码,您可以在另一个上面添加控件.请注意,您始终设置lblDiagnosis.Location = new Point(0,0);.如果从代码添加控件,则添加的第一个控件将覆盖您在同一位置添加的所有其他控件(与使用设计器时不同).

您可以尝试这样的方法来检查标签是否正常:

Label lblMotive = new Label();
lblMotive.Text = language.motive;
lblMotive.Location = new Point(0, 40);

Label lblDiagnosis = new Label();
lblDiagnosis.Text = language.diagnosis;
lblDiagnosis.Location = new Point(0, lblMotive.Location.Y + lblMotive.Size.Height + 10);

panelServiceMotive.Controls.Add(lblMotive);
panelServiceMotive.Controls.Add(lblDiagnosis);
点赞