2012-02-13 57 views
0

我有一个类与Form1:Form类相同的文件(直接继续),并希望从类中创建一个新的控件(标签thisObj = new label();) 。我试图用下面的代码:从另一个类的窗体中的新控件

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

但是,当我这样做时,窗体开始调试时不加载。

编辑:行“Form1 form = new Form1()”导致窗体不加载。

+0

'Form1 form = new Form1()'不加载表单。你至少需要调用'Show'或'ShowDialog'来实现。 – 2012-02-13 18:59:56

回答

0

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

2

尝试用:

this.Controls.Add(thisObj); 

将控制添加到当前的形式。

+0

正如你可以在我的代码中看到的,我已经在使用Add函数。 – 2012-02-13 18:49:09

+0

@StefanDunn:...你从一个Form1中不显示...... – 2012-02-13 18:58:51

1

为了控制只是添加到当前的形式,从弗雷德里克的代码是正确的,就像这样:

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

这是正常的Form1中不显示,你永远不调用Show()方法。如果你想显示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); 
相关问题