,i pregunta es hay alguna manera de ocultar el formulario en caso de que no fuese necesario? He intentado con opacity,incluso con Hide:
Ya estás utilizando el método correcto para ocultar el form. Si tienes un problema entonces describe con todos los detalles posibles cual es el problema, para intentar darte una solución. Dices que el Form no se oculta al llamar al método
Form.Hide(), pues bien, describe en que evento/lugar del código del Form lo estás intentando usar.
Muestra tu código.Debes tener en cuenta que en pocas palabras la ventana de un Form no existe hasta que es visible, y por ende cualquier intento de llamar al método
Form.Hide() o la propiedad
Form.Visible será ignorado, si por ejemplo lo estás intentando ocultar cuando se dispara el evento
Form.OnLoad o en el constructor del Form, pues ahí todavía la ventana no existe, no se ha creado un handle de ventana.
En otras palabras eso también significa que un Form siempre se va a mostrar, aunque sea por un instante (produciendo un parpadeo) antes de que puedas ocultarlo. Pero esto podemos evitarlo, existe una solución...
Si tu intención es instanciar un Form y que éste no sea visible hasta que realmente sea necesario, entonces puedes anular/sustituir el método base
Form.SetVisibleCore:
Public NotInheritable Class Form1 : Inherits Form
Public Sub New()
MyClass.InitializeComponent()
End Sub
Protected Overrides Sub SetVisibleCore(ByVal value As Boolean)
If Not (MyBase.IsHandleCreated) Then
value = False
MyBase.CreateHandle()
End If
MyBase.SetVisibleCore(value)
End Sub
End Class
De esa forma nunca se llegará a ver el Form ni por un instante, a menos que llames al método
Form.Show por primera vez.
Ten en cuenta también que al utilizar esta solución, el evento
Form.OnLoad no se producirá hasta que la ventana sea visible, así que si tuvieras instrucciones escritas en el bloque del controlador
Form.Load:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
' ...
End Sub
...entonces deberías moverlo al constructor de la clase.
Saludos.