我有一些标签和一堆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);