2013-12-10 58 views
0

的Program.cs我說:添加一個文本框C#

public void displayControls() 
{ 
    TextBox tb = new TextBox(); 
    tb.Text = "Enter"; 
    tb.Location = new Point(300, 300); 
    tb.Size = new Size(300, 300); 
    tb.Visible = true; 
    tb.Show(); 
    tb.BringToFront(); 
} 

然後在:

static void Main(string[] args) 
{ 
    this.displayControls(); 
} 

但是,這是行不通的。我是否需要從Form.cs訪問表單實例並添加到該實例?我需要什麼使該文本框在窗體中可見?

謝謝。

+0

您想要做什麼,在運行時以編程方式創建文本框來更改表單的外觀? – sab669

+0

表單在哪裏? – Steve

+2

這段代碼有比代碼行更多的錯誤... – RononDex

回答

6

看來,你的目標WinForm應用程序。你需要做的是,在你的Form.cs,你可以這樣做,在事件,如:

private void Form1_Load(object sender, EventArgs e) 
{ 
    TextBox tb = new TextBox(); 
    tb.Text = "Enter"; 
    tb.Location = new Point(300, 300); 
    tb.Size = new Size(300, 300); 
    tb.Visible = true; 
    this.Controls.Add(tb); //here add it to the current form instance 
} 
+0

如何調用這個函數? –

+0

「Form1_Load」將在您的表單加載後自動調用。 –

+3

@Harikrishnan,你不必調用這個函數,你需要確保你的Form有一個Form_Load事件,最簡單的方法就是雙擊設計器中的Form,這會附加一個Form_Load事件給你的形式。在那裏你可以有回答或提取他們的函數,並從'Form_Load'調用,**只需確保**做'this.Controls.Add(tb);' – Habib

0

displayControls應該是形式,而不是程序的方法。此外,你將需要:

this.Controls.Add(tb); 

,以確保它得到妥善處理

3

你應該儘量把UI相關的元素在Forms.cs。它更容易,它有一個更好的設計。

您應該檢查一下,如果您右鍵單擊Visual Studio解決方案上的Form1.cs元素,則可以訪問「查看代碼」選項。從這裏你可以看到與UI相關的代碼。

你會看到這個簡單的類定義

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
    } 

但是,當您檢查InitializeComponent方法,你可以看到,這將使文本框中顯示的說明。注意不要在Form1.Designer.cs中編寫代碼,因爲它會在您每次構建時自動生成代碼