Относительно простая проблема.Как правильно удалить элемент управления из памяти, в VB.Net?
У меня есть панель с некоторыми текстовыми полями на ней, все динамически созданное. Пользователь заполняет некоторые текстовые поля, а затем переходит к закрытию панели.
Теперь в коде я использую линию;
Me.Pnl_Main.Controls.Clear()
, и это прекрасно работает, содержимое панели «удалено».
Проблема заключается в том, что, когда текстовые поля воссозданы с той же целью, они по-прежнему содержат значения, которые они имели ранее.
И, к сожалению, для меня большая часть пользовательского интерфейса создается таким образом, что неизбежно приводит к утечке памяти.
Итак, мой вопрос в том, есть ли способ удалить элемент управления из памяти? Или мне нужно запустить подпрограмму, чтобы установить все текстовые значения в Nothing?
Заранее спасибо.
Я думаю, проблема в том, что ссылки на созданные вами текстовые поля все еще существуют где-то после выполнения '.Clear()'. Я не думаю, что у вас проблема с утечкой памяти, потому что вы всегда используете одни и те же экземпляры текстовых полей (почему вы видите предыдущий текст). Конечно, текстовые поля ссылаются вне формы, чем возможна утечка. Можете ли вы показать код, как вы создаете текстовые поля и добавляете их в панель – Fabio
После 'Me.Pnl_Main.Controls.Clear()' вы можете установить переменную текстового поля в ничто. –
Текстовые поля на самом деле являются частью пользовательского элемента управления, который я создал (таким образом я экономлю время при динамическом создании большого количества элементов управления). –