Jump to content

consulta forma correcta de abrir un formulario


Recommended Posts

tengo solo una duda de como se debe abrir un formulario en visual basic net (version 2010)

 

 

cual es la forma correcta???

 

 

form1.show

 

o

 

dim formulario as new form1

 

formulario.show

 

 

 

alguna diferencia una de otra???

 

Link to comment
Share on other sites

Holas

yo si es de una pantalla normal lo hago de la siguiente forma

My.Forms.[nombre_formulario].ShowDialog()

o si es de un mdi de la siguiente forma:

 My.Forms.[nombre_formulario].MdiParent = Me
 My.Forms.[nombre_formulario].Show()

espero que te sirva, saludos

Link to comment
Share on other sites

Holas

yo si es de una pantalla normal lo hago de la siguiente forma

My.Forms.[nombre_formulario].ShowDialog()

 

Solo un detalle:

 

From.ShowDialog activa el formulario en forma modal. Esto es que no puedes acceder a los otros formularios o al formulario padre hasta que ése se cierre. Esto es útil para ventanas que muestran mensajes o si el formulario debe obligatoriamente obtener algún dato o confirmación del usuario.

 

Por ejemplo, los mesajes de alerta de Windows son un tipo de formulario modal ya que bloquean la operación normal hasta que ésta se cierre. También los MessageBox son un tipo de formulario modal.

 

De forma opuesta, Form.Show muestra el formulario pero no "bloquea" el form padre o los demás formularios del proyecto, por lo quen puedes volver atrás y trabajar en otro formulario o incluso abrir el mismo formulario varias veces sin problemas.

 

Por ejemplo, cuando en Photoshop tienes varias imágenes abiertas, puedes trabajar en cada una por separado e incluso abrir mas ventanas nuevas, este es un tipo de formulario no modal, o abierto con Form.Show.

 

El usar uno u otro dependerá siempre de cuál es el propósito, requerimientos y funcionalidad del formulario que estés desarrollando, y su interacción con el resto del proyecto.

Edited by The Duke of Quakem
Link to comment
Share on other sites

 

Holas

yo si es de una pantalla normal lo hago de la siguiente forma

My.Forms.[nombre_formulario].ShowDialog()

 

Solo un detalle:

 

From.ShowDialog activa el formulario en forma modal. Esto es que no puedes acceder a los otros formularios o al formulario padre hasta que ése se cierre. Esto es útil para ventanas que muestran mensajes o si el formulario debe obligatoriamente obtener algún dato o confirmación del usuario.

 

Por ejemplo, los mesajes de alerta de Windows son un tipo de formulario modal ya que bloquean la operación normal hasta que ésta se cierre. También los MessageBox son un tipo de formulario modal.

 

De forma opuesta, Form.Show muestra el formulario pero no "bloquea" el form padre o los demás formularios del proyecto, por lo quen puedes volver atrás y trabajar en otro formulario o incluso abrir el mismo formulario varias veces sin problemas.

 

Por ejemplo, cuando en Photoshop tienes varias imágenes abiertas, puedes trabajar en cada una por separado e incluso abrir mas ventanas nuevas, este es un tipo de formulario no modal, o abierto con Form.Show.

 

El usar uno u otro dependerá siempre de cuál es el propósito, requerimientos y funcionalidad del formulario que estés desarrollando, y su interacción con el resto del proyecto.

 

 

gracias por la correccion, siempre es bueno apender mas :D

Link to comment
Share on other sites

Para empezar, nunca me ha gustado mucho Visual Basic, estoy más acostumbrado a C#. Incluso me pareció raro que funcionara la forma:

Form1.Show()
Eso parece una llamada a un método estático, o sea, la parte Form1 se interpretaría como el nombre de una clase, y el Show() sería la llamada a un método que no requiere una instancia para llamarse. Sin embargo, no es eso lo que ocurre, Form1 es realmente una instancia de la clase Form1 :mmm: .

Así que el código funciona porque se supone que por cada formulario que hay en un proyecto, hay una instancia de dicho formulario creada "mágicamente" (creo que en ninguna parte del código fuente vas a encontrar estas instancias declaradas explícitamente).

 

Por lo tanto, el hecho que puedas mostrar un formulario sin tener que declarar un objeto previamente, es porque el lenguaje (VB.NET) ofrece un atajo para ello. El atajo en cuestión son las instancias predeterminadas.

El problema con usar esta característica o "gracia" del lenguaje, es que te puedes mal acostumbrar. De hecho, en C# y otros lenguajes no existen las instancias predeterminadas, y eso puede darte problemas si, por ejemplo, tuvieses que migrar una aplicación VB.NET a otro lenguaje.

 

Por ejemplo, en C#, la forma de hacer esto es:

    Form1 form1 = new Form1();
    form1.Show();
En este caso, Form1 es el nombre de la clase, y form1 es el nombre del objeto (instancia). Por convención, los nombres de tipos se escriben con mayúscula inicial, y los nombres de variables con minúscula. Sin embargo, en VB.NET ni siquiera hay diferencia entre mayúsculas y minúsculas, así que el código resulta aun más confuso. De hecho, la llamada para mostrar el formulario podría escribirse de cualquiera de estas maneras en VB.NET:
    Form1.Show()
    form1.Show()
    FORM1.Show()
Así que yo te recomendaría que lo hagas de la forma habitual, es decir, creando una instancia primero y después llamando al método:
   Dim formulario As New Form1()
   formulario.Show()
Nótese que yo también prefiero poner los paréntesis vacíos cuando no hay parámetros (creo que evita que los métodos se confundan con variables o propiedades).

 

:huasonto:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...