Как удалить элементы управления из группы?

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

Спасибо

4 ответа

Я использовал эти коды:

int c = groupBox6.Controls.Count;

for (int i = c - 1; i >= 0; i--)
    groupBox6.Controls.Remove(groupBox6.Controls[i]);

и это сработало.

Используйте .OfType

var x = groupBox1.Controls.OfType<Button>().Where(c => c.Name == "button1").FirstOrDefault();
groupBox1.Controls.Remove(x);

Вы можете использовать этот код, чтобы очистить ваш групповой ящик:

groupbox.Controls.Clear();

Цикл for теперь работает для меня. Я попытался foreach(Control Ctrl в ParameterFrame), и он удалил только половину элементов управления. Я добавляю свои элементы управления по два в методе, подобном этому:

ParameterFrame.Controls.Add (TXT); ParameterFrame.Controls.Add(LBL);

По какой-то причине foreach() удаляет только первый из двух, которые я добавил. В приведенном выше случае только текст (текстовые поля) будут удалены. Если бы я поменял порядок и сначала добавил метки, foreach удалил бы только метки и оставил бы текстовые поля там. Почему я не знаю Хотя, как я уже сказал, обычный цикл for удалил их все.

Другие вопросы по тегам