Как удалить элементы управления из группы?
Я динамически создаю кнопки в групповом ящике, поэтому, когда я нажимаю вторую кнопку, она должна отображать другой набор кнопок в одном и том же групповом ящике, поэтому мне нужно удалить более ранние кнопки, чтобы получить новые, я правильно думаю или есть другой способ,
Спасибо
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 удалил их все.