Как динамически удалить поле со списком в C #, нажав кнопку во время выполнения? - PullRequest
3 голосов
/ 19 июня 2011

Я сейчас пытаюсь создать форму, которая работает динамически. Я создал панель макета потока, добавил кнопку и удалил кнопку на форме. Когда я нажимаю кнопку добавления, на панели появляется поле со списком и продолжает добавлять, если я нажимаю кнопку добавления сверху вниз.

Проблема в том, что я не знаю, как удалить по одному. Например, если я добавил три поля со списком, нажав кнопку «Добавить» 3 раза (скажем, поле со списком 1, 2, 3), я хочу удалить их в порядке 3, 2, 1 при нажатии кнопки «Удалить».

Как мне это сделать в C #?

Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 19 июня 2011

Попробуйте это:

flowLayoutPanel.Controls.RemoveAt(flowLayoutPanel.Controls.Count - 1);

См. Метод Control.ControlCollection.RemoveAt

0 голосов
/ 19 июня 2011

Попробуйте

с помощью системы;using System.Collections.Generic;using System.ComponentModel;используя System.Data;использование System.Drawing;использование System.Linq;используя System.Text;использование System.Windows.Forms;using System.Drawing;

пространство имен WindowsFormsApplication2 {открытый частичный класс Form1: Form {public Form1 () {InitializeComponent ();}

    private void button1_Click(object sender, EventArgs e)
    {
        ComboBox b1 = new ComboBox();
        b1.BackColor = Color.Blue;

        flp.Controls.Add(b1);

        b1.Text = b1.TabIndex.ToString();

    }

    private void button2_Click(object sender, EventArgs e)
    {
        if (flp.Controls.Count > 0)
        {

            flp.Controls.RemoveAt(flp.Controls.Count - 1);
        }
    }



}

}

0 голосов
/ 19 июня 2011

Я думаю, что вы можете использовать массив элементов управления combo box, чтобы отслеживать созданные поля со списком, посмотрите эту статью .

...