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

时间:2015-04-02 13:19:49

标签: c# tabs inputbox

我的表单上有一个标签控件。我提示用户通过用户输入(使用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");
        }

2 个答案:

答案 0 :(得分: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)
}

}

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

答案 1 :(得分:0)

获取当前的TabPage并将文本框添加到标签页。

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

或在1声明中:

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