2012-02-13 79 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); 
相關問題