Вы можете использовать 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();
}
Слушайте - простой пример с:
- A
FlowLayoutPanel
с FlowDirection
, установленным на TopDown
- Две кнопки с именами
btnPlus
и btnMinus
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
cmbExtension.Items.Add("*.doc");
cmbExtension.Items.Add("*.docx");
cmbExtension.Items.Add("Other...");
btnPlus.Hide();
btnMinus.Hide();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cmbExtension.Text)
{
case "Other...":
// ...
btnPlus.Hide();
btnMinus.Hide();
break;
case "*.doc":
btnPlus.Show();
btnMinus.Show();
break;
case "*.docx":
btnPlus.Show();
btnMinus.Show();
break;
default:
btnPlus.Hide();
btnMinus.Hide();
break;
}
}
private void btnPlus_Click(object sender, EventArgs e)
{
TextBox textBox = new TextBox();
this.flowLayoutPanel1.Controls.Add(textBox);
}
private void btnMinus_Click(object sender, EventArgs e)
{
int count = this.flowLayoutPanel1.Controls.Count;
if (count > 0)
{
this.flowLayoutPanel1.Controls[count - 1].Dispose();
}
}
}
Снимки: