MSDN писал(а):When a form is unloaded, all controls placed on the form at run time are no longer accessible. Controls placed on the form at design time remain intact; however, any run-time changes to those controls and their properties are lost when the form is reloaded. All changes to form properties are also lost. Accessing any controls on the form causes it to be reloaded.
Note When a form is unloaded, only the displayed component is unloaded. The code associated with the form module remains in memory.
Из этого следует, что если форма не имеет ни одного контрола, созданного в "design time", и не содержит в своем модуле кода - она выгрузится полностью. Верно?
Что ж. На практике выходит несколько иначе.
Вот простой код:
- Код: Выделить всё
Option Explicit
Private Sub Command1_Click()
Load Form2
End Sub
Private Sub Command2_Click()
Load Form3
End Sub
Private Sub Command3_Click()
Unload Form2
End Sub
Private Sub Command4_Click()
Unload Form3
End Sub
Пример в аттаче.
Если последовательно загрузить и выгрузить обе формы, то размер памяти, занимаемый процессом, увеличится на 1.4 МБ. Собственно, откуда эта разница?