Finalizar Correctamente Aplicación

08/05/2006 - 18:16 por Ivan Pequeño | Informe spam
Estimados

He leido bastante y no me queda claro cual sería la
forma "CORRECTA" de finalizar un programa.

En Vb6 Hacíamos un set form = Nothing

En .Net ...

Agradeciendo de antemano

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
08/05/2006 - 18:24 | Informe spam
"Ivan Pequeño" wrote in message
news:
He leido bastante y no me queda claro cual sería la
forma "CORRECTA" de finalizar un programa.

En Vb6 Hacíamos un set form = Nothing

En .Net ...



En .Net el equivalente a "set form = Nothing" sería:
form.Dispose()
form=Nothing

Pero eso no hace terminar el programa (ni en VB6 ni en .Net), sino que
únicamente libera los recursos consumidos por ese formulario.
Respuesta Responder a este mensaje
#2 Ivan Pequeño
08/05/2006 - 18:43 | Informe spam
Gracias por tu respuesta,

Encontré un Form.Close()

Entonces sería lo ideal

form.Dispose()
form=Nothing


Form.Close()

O Form.Close() implica las 2 anteriores ?




"Alberto Poblacion" escribió:

"Ivan Pequeño" wrote in message
news:
> He leido bastante y no me queda claro cual sería la
> forma "CORRECTA" de finalizar un programa.
>
> En Vb6 Hacíamos un set form = Nothing
>
> En .Net ...

En .Net el equivalente a "set form = Nothing" sería:
form.Dispose()
form=Nothing

Pero eso no hace terminar el programa (ni en VB6 ni en .Net), sino que
únicamente libera los recursos consumidos por ese formulario.



Respuesta Responder a este mensaje
#3 Alberto Poblacion
08/05/2006 - 20:48 | Informe spam
"Ivan Pequeño" wrote in message
news:
Entonces sería lo ideal

form.Dispose()
form=Nothing


Form.Close()

O Form.Close() implica las 2 anteriores ?



No. Primero Close(). Después Dispose y Nothing.
El Close de .Net equivale al Unload de VB6.

Por cierto, una cosa si vienes desde VB6: En las sentencias anteriores,
donde pone "form" hay que poner la INSTANCIA y no la CLASE del formulario.
En VB6 muchas veces se confunden las dos cosas porque el VB6 automáticamente
instancia todos los forms poniéndole a la instancia el mismo nombre que a la
clase, pero en .Net (al menos en 1.0) no ocurre lo mismo de forma
automática.
En otras palabras, si abres el formulario asi:

Dim frm as New miFormulario()
frm.ShowDialog()

Entonces, lo más normal es poner el Close() dentro de miFormulario (en
el "Click" del botón "Cancelar"), y poner fuera, detrás del frm.ShowDialog:

frm.Dispose()
frm=Nothing

Nótese que no da igual "miFormulario" que "frm". "miFormulario" es la
clase y "frm" es la instancia. En VB6 lo que ocurre es que el compilador
hace implícitamente un "Dim miFormulario as New miFormulario" y por eso
parece que las dos cosas dan lo mismo.
Respuesta Responder a este mensaje
#4 Ivan Pequeño
08/05/2006 - 21:01 | Informe spam
Te agradezco mucho la explicación
Efectivamente viniendo de Vb6, intento comprender .NET
Pensar en .NET

Falta mucho aú´n para eso pero ya estoy un poco menos lejos

"Alberto Poblacion" escribió:

"Ivan Pequeño" wrote in message
news:
> Entonces sería lo ideal
>
>> form.Dispose()
>> form=Nothing
> Form.Close()
>
> O Form.Close() implica las 2 anteriores ?

No. Primero Close(). Después Dispose y Nothing.
El Close de .Net equivale al Unload de VB6.

Por cierto, una cosa si vienes desde VB6: En las sentencias anteriores,
donde pone "form" hay que poner la INSTANCIA y no la CLASE del formulario.
En VB6 muchas veces se confunden las dos cosas porque el VB6 automáticamente
instancia todos los forms poniéndole a la instancia el mismo nombre que a la
clase, pero en .Net (al menos en 1.0) no ocurre lo mismo de forma
automática.
En otras palabras, si abres el formulario asi:

Dim frm as New miFormulario()
frm.ShowDialog()

Entonces, lo más normal es poner el Close() dentro de miFormulario (en
el "Click" del botón "Cancelar"), y poner fuera, detrás del frm.ShowDialog:

frm.Dispose()
frm=Nothing

Nótese que no da igual "miFormulario" que "frm". "miFormulario" es la
clase y "frm" es la instancia. En VB6 lo que ocurre es que el compilador
hace implícitamente un "Dim miFormulario as New miFormulario" y por eso
parece que las dos cosas dan lo mismo.





Respuesta Responder a este mensaje
#5 Eduardo A. Morcillo [MS MVP VB]
08/05/2006 - 23:19 | Informe spam
O Form.Close() implica las 2 anteriores ?



No. Primero Close(). Después Dispose y Nothing.
El Close de .Net equivale al Unload de VB6.



Casi correcto. En realidad depende de como se abra el formulario. Si se usa
Show, Close ya hace el Dispose. En cambio si se muestra con ShowDialog,
Dispose no es llamado por Close y entonces si deberia llamarse.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida