【发布时间】:2020-05-06 05:58:09
【问题描述】:
我正在尝试根据以下步骤动态地根据ComboBox 上的选择创建TextBox:
第一步(从ComboBox中选择一个来源):
第二步(Textbox应该基于ComboBox.SelectedValue出现):
最后一步(新的ComboBox 应该出现在下面):
我使用以下代码创建了一个createTextBox 函数:
public void createTextBox(int numPassenger)
{
TextBox[] passengerBoxes = new TextBox[numPassenger];
for (int u = 0; u < passengerBoxes.Count(); u++)
{
passengerBoxes[u] = new TextBox();
}
int i = 0;
foreach (TextBox txt in passengerBoxes)
{
string name = "passenger" + i.ToString();
txt.Name = name;
txt.Text = name;
txt.Location = new Point(244, 32 + (i * 28));
txt.Visible = true;
this.Controls.Add(txt);
i++;
}
}
有没有办法可以修改我当前的功能以适应上述步骤?另外,如何找到动态创建的TextBox?
【问题讨论】:
-
在 combobox_selection_changed 事件中,您必须调用创建文本框的方法。该方法应该循环遍历所有控件并找到已选择值的组合框。对于这些中的每一个,都应该创建一个文本框。
this.Controls包含 winform 上的所有控件。您可以遍历列表。 -
谁想到使用组合框来选择您要编辑的内容?为什么不使用标准表单,您可以在其中查看和编辑所有内容?
-
最好事先创建控件并根据您的选择显示/隐藏。
标签: c# winforms combobox textbox