Я создаю элементы управления динамически (checkBoxes, listBox, trackBar ...) в форме, и я добавляю menuStrip с помощью редактора. Я хотел бы удалить все элементы управления, и я хотел бы сохранить меню. Когда я использую эту строку:Очистить форму без меню удаления
this.Controls.Clear();
он удаляет меню, а также элементы управления, однако, как я понял, пункты меню не являются элементами управления, они находятся в форме непосредственно (я могу видеть их, если я пишу " это "и нажмите точку). Я попытался перебрать элементы управления и удалить, только если тип был одним из элементов управления, но некоторые элементы управления остались, а некоторые удалены. Я циклически использовал controls.Count. Я пытался поставить весь цикл в другое время() и выход, если Controls.Count> 1, как это:
while(this.Controls.Count > 1)
{
for (int i = 0; i < this.Controls.Count; i++)
{
if ((this.Controls[i].GetType() != typeof(MenuStrip)))
{
this.Controls.RemoveAt(i);
}
}
}
Он удаляет элементы управления и выйти из меню в одиночку, но элементы, которые не исчезает disapper в то же время, но через некоторое время, я думаю, это потому, что время работает более одного раза.
Мои вопросы:
1. Почему он не может удалить все элементы управления сразу, в то время как я повторяю все это, используя controls.count в качестве верхней границы.
2. Что является пунктом менюStrip как control, а toolStripMenuItmes не управляет.
«Я создаю элементы управления динамически (Флажки, ListBox, TrackBar ...) на бланке» Другим вариантом было бы добавить те dyanmic в List <>, что вы перебрать и удалите предметы. Это позволит вам добавить в форму другие «постоянные» элементы управления без необходимости усложнять код удаления. –