Se me ha ocurrido otro metodo chapuzas que es iniciar el form 'Invisible' al cargar el programa forzando a cargarse pero me gustaria hacer las cosas bien.
Vaya, pues eso es lo que te iba a decir yo xD.
Teniendo en cuenta que en cada inicio la aplicación debes instanciar ese form una primera vez para que todos los controles se dibujen y tal ...yo creo que lo que llamas método chapuzas en realidad es la única manera de aumentar la velocidad de carga. aunque, bueno, mi especialidad no es el rendimiento de memoria, sólamente hablo por lógica ya que lo innecesario no se carga en memoria a menos que sea bajo demanda.
Esto es una de esas cosas que deberían hacerse al cargar la aplicación, es decir en el evento Startup.
Y si tienes varios forms que deseas mantener "cargados" entonces podrías valerte de un
Stack de forms para ir precargándolos cuando sea necesario.
Public Class Form1
Public Shared PreloadForms As New Stack(Of Form)
Private Shadows Sub Shown() Handles MyBase.Shown
ShowForm()
End Sub
Private Sub ShowForm()
' Muestro el Formulario y lo elimino del stack.
PreloadForms.Pop.Show()
End Sub
End Class
Imports WindowsApplication... .Form1
Namespace My
Friend Class MyApplication
Private Shadows Sub Startup() Handles MyBase.Startup
' Añado el form al stack, es decir, lo precargo.
PreloadForms.Push(My.Forms.Form2)
' Información adicional.
Debug.
WriteLine(String.
Format("{0} is preloaded", Form1.
PreloadForms.
Peek.
Name))
End Sub
End Class
End Namespace
Y aparte de eso puedes precompilar tu aplicación usando NGEN.
Saludos