Нужен способ выгрузить ранее выбранную TabPage для освобождения объектов USER - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть C # WinForms TabControl, со многими элементами управления на каждой вкладке. Когда вы запускаете, загружается не так много пользовательских объектов, но при переключении вкладок кажется, что вкладка загружается элементами управления, и объекты USER растут и растут, что в конечном итоге достигает предела и приводит к сбою программы. USER Objects имеет максимальную настройку в окнах. На данный момент его нельзя радикально переработать, чтобы использовать меньше элементов управления, поэтому здесь необходимо поддерживать одинаковое количество элементов управления на каждой вкладке.

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

Я сделал тестовую программу, показывающую проблему, которую можно легко воссоздать. C # WinForms, добавлено 72 текстовых поля на каждой вкладке. При запуске до вкладки 1 диспетчер задач отображает 94 пользовательских объекта. Когда я нажимаю Tab 2, он показывает 168. Они никогда не опускаются ниже. Это происходит без добавления чего-либо лишнего, без событий и т. Д. При добавлении еще 2 вкладок происходит переход к 315. Так что это определенно происходит, что никогда не выгружается, а только после нажатия на вкладку. Мне нужно найти способ понизить объекты USER на неиспользуемых вкладках.

...