2012-02-08 118 views
1

我確定有一種方法可以做到,我只是無法自己解決這個問題,並且搜索該網站並未向我顯示我需要知道的信息。也許我只是使用了錯誤的關鍵字。在執行過程中創建Windows窗體控件

我想在執行過程中將控件添加到窗體。我想爲numericUpDown中顯示的數字創建新的控件。例如。如果用戶輸入3,則應創建3個控件。

它是在Form.ActiveForm。*中的東西嗎?

謝謝。

+0

你想創建什麼「元素」? – 2012-02-08 18:59:18

回答

3

而不是「元素」,我認爲你指的是「控件」。

的一般方法是:

TextBox textBox = new TextBox(); 
textBox.Location = Some Point on your form or container. 
this.Controls.Add(textBox); 

爲您額外的數字,只是做在一個循環:

int topValue = 0; 
for (int i = 0; i < numericUpDown1.Value; i++) { 
    TextBox textbox = new TextBox(); 
    textBox.Location = new Point(0, topValue); 
    this.Controls.Add(textBox); 

    topValue += textBox.Height + 2; 
} 
+0

非常感謝您的快速響應:) – haapsen 2012-02-08 19:00:36

+0

這可以工作,即創建numericUpDown中指定的元素數量。不過,如果numericUpDown1.Value低於表單中存在的數字,我還想要銷燬這些元素。我是否應該將其作爲單獨問題發佈? – haapsen 2012-02-08 19:57:56

+0

@haapsen這是一個與你發佈的問題不同的問題,它會產生不同的答案。我會發佈一個新問題並鏈接到這個問題作爲參考。這聽起來像你冒險進入FlowLayoutPanel領土。另外,將它們稱爲「控件」,而不是「元素」。 – LarsTech 2012-02-08 20:22:32

1

你的意思是這麼簡單的東西嗎?

numericUpDown1.Maximum = int.Parse(textBox1.Text); 

如果不是,請詳細說明。

相關問題