elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Como ocultar el formulario en vb.net
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como ocultar el formulario en vb.net  (Leído 2,065 veces)
Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Como ocultar el formulario en vb.net
« en: 4 Junio 2017, 23:09 »

Mi pregunta es como puedo hacer para ocultar el formulario sin que apareciese, ya que al ponerlo como consola tampoco es lo que busco. Entonces mi pregunta es hay alguna manera de ocultar el formulario en caso de que no fuese necesario? He intentado con opacity,incluso con Hide:

Código:
Me.Hide()
Como podría hacer para que no sea visible.

Saludos.


En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
NEBIRE


Desconectado Desconectado

Mensajes: 2.328


Ver Perfil
Re: Como ocultar el formulario en vb.net
« Respuesta #1 en: 5 Junio 2017, 02:17 »

Hay varias formas...

Desde luego usar una aplicación como consola es la mejor solución. Básta añadir un módulo y crear el método público Main... y ya desde ahí abres el formulario que quieras, o ninguno...
Código
  1. Module Module1
  2.    Dim f As New Form1
  3.  
  4.    Public Sub main()
  5.  
  6.        f.Show()
  7.        '  f.ShowDialog() ' según lo que convenga al caso...
  8.        ' o simplemente no lo muestras y ejecutas código, desde la instancia 'f'
  9.    End Sub
  10. End Module

Si persistes en usar una aplicación windows forms (no es tan relevante el caso), entonces lo tienes que hacer desde el evento Mostrado:

Código
  1. Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
  2.        Me.Visible = False
  3.    End Sub


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Como ocultar el formulario en vb.net
« Respuesta #2 en: 5 Junio 2017, 20:58 »

,i pregunta es hay alguna manera de ocultar el formulario en caso de que no fuese necesario? He intentado con opacity,incluso con Hide:

Código:
Me.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:

Código
  1. Public NotInheritable Class Form1 : Inherits Form
  2.  
  3.    Public Sub New()
  4.        MyClass.InitializeComponent()
  5.    End Sub
  6.  
  7.    Protected Overrides Sub SetVisibleCore(ByVal value As Boolean)
  8.        If Not (MyBase.IsHandleCreated) Then
  9.            value = False
  10.            MyBase.CreateHandle()
  11.        End If
  12.        MyBase.SetVisibleCore(value)
  13.    End Sub
  14.  
  15. 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:
Código
  1. Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  2.    ' ...
  3. End Sub
...entonces deberías moverlo al constructor de la clase.

Saludos.
« Última modificación: 5 Junio 2017, 21:03 por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines