如何动态添加或删除文本框?

时间:2020-01-29 11:52:34

标签: c# winforms

我想在表单上制作一个工具,允许用户使用[+]和[-]按钮添加或删除文本框。仅当在ComboBox中选择了项目“ * .doc”或“ * .docx”时,才有可能。

我已经尝试过.doc了:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    switch (cmbExtension.Text)
    {
        case "Other...":
            string extensionName = Interaction.InputBox("Enter the new extension's name (for example *.txt): ", "New extension!");
            File.AppendAllText(strPath, "\n" + extensionName);
            // string extensionFunction =  Interaction.InputBox("Enter the type of file it's supposed to be (for example Microsoft Word 2016): ", "Give us an idea.");

            cmbExtension.Items.Clear();
            LoadLines();
            break;
        case "*.doc":
            btnPlus.Show();

            break;
        case "*.docx":
            btnPlus.Show();

            break;
        default:
            btnPlus.Hide();
            break;
    }

    // As well as using similar code in these things, now empty:

    if (cmbExtension.Text == "Other...")
    {
    }
    if (cmbExtension.Text == "*.doc" || cmbExtension.Text == "*.docx")
    {
    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用FlowLayoutPanel在其中添加和删除文本框。

要将TextBox添加到FlowLayoutPanel(或任何容器控件),请使用:

TextBox textBox = new TextBox();
this.flowLayoutPanel1.Controls.Add(textBox);

要从TextBox(或任何容器控件)中删除最后添加的FlowLayoutPanel,请使用:

int count = this.flowLayoutPanel1.Controls.Count;
if (count > 0)
{
    this.flowLayoutPanel1.Controls[count - 1].Dispose();
}

听是一个简单的例子,

  • 一个FlowLayoutPanel设置为FlowDirection的{​​{1}}
  • 两个分别名为TopDownbtnPlus的按钮
btnMinus

快照:

enter image description here