C# 在创建选项卡时添加文本框
C# Adding textboxes when tabs are created
我的表单上有一个选项卡控件。我通过用户输入(使用 Visual Basic 库)提示用户 header 有多少个口袋。文本框中的数字生成那么多的选项卡。
问题
如何在生成新标签时添加文本框?由于在我告诉之前该数字是未知的,因此仅向设计器添加文本框是没有意义的。
我有什么
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");
}
Tab Selecting Event:这里解释了Tab Selecting Event,你可以使用它在被选中的tab上动态生成你需要的文本框。
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)
}
}
这并不是一个完整的示例,而是为了说明它的工作原理。在您的情况下,您必须在代码中为每个动态选项卡连接 Selecting 事件
获取当前TabPage并将文本框添加到tabpage。
TabPage current = tabControl1.TabPages[i-1];
current.Controls.Add(txt);
或在 1 个语句中:
tabControl1.TabPages[i-1].Controls.Add(txt);
我的表单上有一个选项卡控件。我通过用户输入(使用 Visual Basic 库)提示用户 header 有多少个口袋。文本框中的数字生成那么多的选项卡。
问题
如何在生成新标签时添加文本框?由于在我告诉之前该数字是未知的,因此仅向设计器添加文本框是没有意义的。
我有什么
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");
}
Tab Selecting Event:这里解释了Tab Selecting Event,你可以使用它在被选中的tab上动态生成你需要的文本框。
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)
}
}
这并不是一个完整的示例,而是为了说明它的工作原理。在您的情况下,您必须在代码中为每个动态选项卡连接 Selecting 事件
获取当前TabPage并将文本框添加到tabpage。
TabPage current = tabControl1.TabPages[i-1];
current.Controls.Add(txt);
或在 1 个语句中:
tabControl1.TabPages[i-1].Controls.Add(txt);