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