2015-04-02 32 views
1

我在窗體上有一個選項卡控件。我通過用戶輸入(使用Visual Basic庫)提示用戶頭部有多少個口袋。文本框中的數字會生成許多標籤。C#創建制表符時添加文本框

問題

如何添加文本框時,會產生新的標籤?由於數字在我告訴它之前是未知的,因此僅向設計者添加文本框是沒有意義的。

我有什麼

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
     { 
      string input = Microsoft.VisualBasic.Interaction.InputBox("How many pockets does the header have?", "Pocket Count", "",-1,-1); 
      for (int i = 1; i < Convert.ToInt32(input) + 1; i++) 
      { 
       tabControl1.TabPages.Add("Pocket" + i); 
       TextBox txt = new TextBox(); 
       txt.Name = tabControl1.Name; 


      } 
      tabControl1.TabPages.Add("Next"); 
     } 
+0

那麼,什麼是不工作? – 2015-04-02 13:21:26

+0

總是添加文本框,只是讓它們在標籤不活動時不可見! – mybirthname 2015-04-02 13:22:20

回答

0

Tab Selecting Event:這說明了選項卡中選擇事件,然後你可以用它來動態生成需要正被選擇的選項卡上的文本框中。

How to dynamically add a textbox:這解釋瞭如何在運行時添加控件,甚至提供了一個文本框的例子。

如果拿這兩個條款的你一起可能結束了類似下面的,但你一定要來定製這個客戶的特殊應用

private void TabControl1_Selecting(Object sender, TabControlCancelEventArgs e) 
{ 

    TextBox dynamictextbox = new TextBox(); 
    dynamictextbox.Text = "(Enter some text)"; 
    dynamictextbox.ID = "dynamictextbox"; 
    (TabControl)sender.controls.Add(dynamictextbox) 
} 

} 

這並不意味着是一個完整的例子,但要說明它如何工作。在你的情況下,你將不得不連接每個動態標籤的代碼選擇事件

0

獲取當前的TabPage並將文本框添加到tabpage。

TabPage current = tabControl1.TabPages[i-1]; 
current.Controls.Add(txt); 

或在1個語句:

tabControl1.TabPages[i-1].Controls.Add(txt);