Я загружаю пользовательский элемент управления внутри панели, сам пользовательский элемент управления содержит так много внутренних элементов управления, как страницы вкладок, панели, кнопки, а также внутри его панелей будут некоторые другие пользовательские элементы управления.
Допустим, скажем Я загружаю основной пользовательский элемент управления внутри главной панели, если я использую это:
MainPanel.Controls.Clear();
Это не очистит память, поэтому я использую это вместо:
while (MainPanel.Controls.Count > 0) MainPanel.Controls[0].Dispose();
Но, похоже, это избавится от основного пользовательского элемента управления и немного очистит память, и я думаю, что все элементы управления в этом пользовательском элементе все еще существуют в памяти. Как я могу рекурсивно выполнять итерации по всем внутренним элементам управления и располагать их один за другим?
Кроме того, внутри пользовательского элемента управления есть несколько элементов управления сеткой, которые загружают некоторые данные. Они не привязаны к какой-либо базе данных, просто извлекают некоторые данные с помощью LINQ из базы данных и команды new
. Нужно ли уничтожать эти данные перед удалением элемента управления, или они будут удалены из памяти с помощью удаления элемента управления?