C#在创建选项卡时添加文本框
我的表单上有一个选项卡控件。我通过用户输入(使用Visual Basic库)提示用户页眉有多少口袋。文本框中的数字会生成如此多的选项卡 问题 生成新选项卡时如何添加文本框?因为在我告诉它之前这个数字是未知的,所以仅仅向设计器中添加文本框是没有意义的 我拥有的C#在创建选项卡时添加文本框,c#,tabs,inputbox,C#,Tabs,Inputbox,我的表单上有一个选项卡控件。我通过用户输入(使用Visual Basic库)提示用户页眉有多少口袋。文本框中的数字会生成如此多的选项卡 问题 生成新选项卡时如何添加文本框?因为在我告诉它之前这个数字是未知的,所以仅仅向设计器中添加文本框是没有意义的 我拥有的 private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { string input
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);
那么,什么不起作用呢?始终添加文本框,只需在选项卡未激活时使其不可见即可!