Form中的新控件来自另一个Class

时间:2012-02-13 18:39:48

标签: c# winforms controls

我在与Form1:Form类相同的文件中有一个类(直接进行),并希望从类中创建一个新控件(标签thisObj = new label();)。我尝试使用以下代码:

Form1 form = new Form1();
label thisObj = new label();
thisObj.Name = "One";
form.Controls.Add(thisObj);

但是,当我这样做时,开始调试时不会加载表单窗口。

编辑:行“Form1 form = new Form1()”会导致表单无法加载。

3 个答案:

答案 0 :(得分:2)

尝试:

this.Controls.Add(thisObj);

它会将控件添加到当前表单中。

答案 1 :(得分:1)

要将控件添加到当前表单,Frederick的代码是正确的,如下所示:

var thisObj = new Label { Name = "One", Text = "Some Text" };
Controls.Add(thisObj);

Form1没有显示是正常的,你从不调用Show()方法。如果要显示添加了新Label的Form1,则代码为:

var form = new Form1();
var thisObj = new Label { Name = "One", Text = "Some Text" };
form.Controls.Add(thisObj);
form.Show();

默认情况下将在WindowsForms应用程序中加载的表单在“Program.cs”文件中定义:

Application.Run(new Form1);

答案 2 :(得分:0)

我通过在类的构造函数中发送Form的实例来解决这个问题。