C#在创建选项卡时添加文本框

C#在创建选项卡时添加文本框,c#,tabs,inputbox,C#,Tabs,Inputbox,我的表单上有一个选项卡控件。我通过用户输入(使用Visual Basic库)提示用户页眉有多少口袋。文本框中的数字会生成如此多的选项卡 问题 生成新选项卡时如何添加文本框?因为在我告诉它之前这个数字是未知的,所以仅仅向设计器中添加文本框是没有意义的 我拥有的 private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string input

我的表单上有一个选项卡控件。我通过用户输入(使用Visual Basic库)提示用户页眉有多少口袋。文本框中的数字会生成如此多的选项卡

问题

生成新选项卡时如何添加文本框?因为在我告诉它之前这个数字是未知的,所以仅仅向设计器中添加文本框是没有意义的

我拥有的

 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");
        }
private void linkLabel1\u LinkClicked(对象发送方,LinkLabelLinkClickedEventArgs e)
{
string input=Microsoft.VisualBasic.Interaction.InputBox(“标题有多少个口袋?”,“口袋数”,“”,,-1,-1);
对于(inti=1;i
:这解释了选项卡选择事件,然后您可以使用它在正在选择的选项卡上动态生成所需的文本框

:这说明了如何在运行时添加控件,甚至提供了一个文本框示例

如果你把这两篇文章放在一起,你可能会得到下面这样的东西,尽管你肯定会想根据你的具体应用来定制它

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)
}

}

这不是一个完整的例子,而是为了说明它是如何工作的。在您的情况下,您必须为每个动态选项卡连接代码中的Selecting事件

获取当前选项卡页并将文本框添加到选项卡页

TabPage current = tabControl1.TabPages[i-1];
current.Controls.Add(txt);
或在1个声明中:

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

那么,什么不起作用呢?始终添加文本框,只需在选项卡未激活时使其不可见即可!