none
Cambiar Formulario de Inicio En Tiempo de Ejecucion RRS feed

  • Pregunta

  • Buenas tardes hace poco me encontre con el problema de cargar un splash de inicio, luego que solucione eso, me plantie el reto a que despues del splash me cargara una ventana del login, y fue cuando utilize esta técnica.

    Entre al diseñador de objetos y cree una propiedad, para cambiar el formmain

     

    Public Property CambiarPrincipal() As Form

                Get

                    Return Me.MainForm

                End Get

                Set(ByVal value As Form)

                    Me.MainForm = value

                End Set

            End Property

        End Class

    Como soy novato en este tema solo estube ahi buscando la forma hacerlo y no encontre nada,esta fue la manera mas facil que se me ocurrio, claro tambien pude crear un metodo para hacerlo.

    Bien mi pregunta es la siguiente: Al Utilizar esta tecnica estoy haciendo algo idevido no me da error ni nada, pero no quiero ejercer una mala programacion desde el inicio.

     

    De ante mano Gracias.


    viernes, 11 de noviembre de 2011 20:25

Respuestas

  • "Joel Agustin Torres R" escribió:

    > hace poco me encontre con el problema de cargar un splash de inicio,
    > luego que solucione eso, me plantie el reto a que despues del splash
    > me cargara una ventana del login, y fue cuando utilize esta técnica.
    >
    > Entre al diseñador de objetos y cree una propiedad, para cambiar
    > el formmain
    >
    > mira a travez del la configuracion de propiedades de aplicacion,
    > seleccione como formulario splash el que tengo de presentacion y
    > como principal el del login, esto lo hice para no utilizar el metodo
    > main que mencionabas antes ya que con ese metodo tendria que llamar
    > a slash luego a login y luego al formulario que tendria que quedar
    > como principal de la aplicacion.

    Pero ¿por qué le tenéis esa especie de "tirria" al procedimiento 'Sub Main'?

    Todavía no llego a enterarme cual puede ser el motivo para que muchos de vosotros os negéis a especificar el procedimiento 'Sub Main' como objeto de inicio de la aplicación, más sabiendo que utilizáis Visual Basic como lenguaje de programación. ¿Qué problema tenéis con el procedimiento 'Sub Main'?

    Fíjate que fácil es mostrar un formulario tipo 'splash' y posteriormente llamar al formulario principal de nuestra aplicación, o al que nos venga en gana:

    Mostrar formulario principal al ocultarse la splashscreen

    Un saludo

     


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    sábado, 12 de noviembre de 2011 9:56
    Moderador
  • hola

    estube ahi buscando la forma hacerlo y no encontre nada

    es que no ahs visto este ejemplo

    Login – Usando Password con Hash

    como veras deberias programar el splash y el login en el Main o sea realzias esto previo a definir el form principal  que ejecuta

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 11 de noviembre de 2011 20:29
  • Quizás yo tampoco lo haya ententido, que si te entendi creo, pero no es un poco raro cambiar por codigo desde cualquier formulario cuando se ejecuten el cambiar el formulario que inicio la aplicación ?, de que te va a servir  ?  ya jamás se volverà a a ejecutar el evento de inicio de la aplicacion pq ya ha sucedido, además para que te funcione debes establecer en diseño un formulario de inicio y te aseguro que siempre sera ese formulario el primero por mucho que ejecutes i lo canvies desde cualquier formulario secundario pues ya se habra mostrado.

     

    viernes, 11 de noviembre de 2011 23:23

Todas las respuestas

  • hola

    estube ahi buscando la forma hacerlo y no encontre nada

    es que no ahs visto este ejemplo

    Login – Usando Password con Hash

    como veras deberias programar el splash y el login en el Main o sea realzias esto previo a definir el form principal  que ejecuta

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 11 de noviembre de 2011 20:29
  • bueno creo que no me explique bien, mira a travez del la configuracion de propiedades de aplicacion, seleccione como formulario splash el que tengo de presentacion y como principal el del login, esto lo hice para no utilizar el metodo main que mencionabas antes ya que con ese metodo tendria que llamar a slash luego a login y luego al formulario que tendria que quedar como principal de la aplicacion.

    asi me queda el diseñador de aplicaciones

     

    Namespace My

     

        'NOTE: This file is auto-generated; do not modify it directly.  To make changes,

        ' or if you encounter build errors in this file, go to the Project Designer

        ' (go to Project Properties or double-click the My Project node in

        ' Solution Explorer), and make changes on the Application tab.

        '

        Partial Friend Class MyApplication

     

            <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _

            Public Sub New()

                MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)

                Me.IsSingleInstance = false

                Me.EnableVisualStyles = true

                Me.SaveMySettingsOnExit = true

                Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses

            End Sub

     

            <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _

            Protected Overrides Sub OnCreateMainForm()

                Me.MainForm = Global.SIREGMA.LoginForm1

            End Sub

     

            <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _

            Protected Overrides Sub OnCreateSplashScreen()

                Me.MinimumSplashScreenDisplayTime = 7000

                Me.SplashScreen = Global.SIREGMA.SplashScreen1

            End Sub

     

     

    bien a este codigo le añadi una propiedad que es esta:

     

    Public Property CambiarPrincipal() As Form

                Get

                    Return Me.MainForm

                End Get

                Set(ByVal value As Form)

                    Me.MainForm = value

                End Set

            End Property

    lo que me permite en cualquier formulario, establecer x forumario como principal asi cuando cargo el login lo programo y llamo al formulario que quiero que se establesca como principal.

     

    Public Class LoginForm1

     

        Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

            My.Application.CambiarPrincipal = Global.SIREGMA.FrmSede

            Me.Close()

            FrmSede.Show()

        End Sub

     

        Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click

            Me.Close()

        End Sub

    End Class

    asi lo hice, a mi me funciona lo que queria saber es si es conveniente hacerlo asi, si no traera problemas a futuro o bien, estoy violando algun concepto de la oop

     

     


    viernes, 11 de noviembre de 2011 21:24
  • Quizás yo tampoco lo haya ententido, que si te entendi creo, pero no es un poco raro cambiar por codigo desde cualquier formulario cuando se ejecuten el cambiar el formulario que inicio la aplicación ?, de que te va a servir  ?  ya jamás se volverà a a ejecutar el evento de inicio de la aplicacion pq ya ha sucedido, además para que te funcione debes establecer en diseño un formulario de inicio y te aseguro que siempre sera ese formulario el primero por mucho que ejecutes i lo canvies desde cualquier formulario secundario pues ya se habra mostrado.

     

    viernes, 11 de noviembre de 2011 23:23
  • "Joel Agustin Torres R" escribió:

    > hace poco me encontre con el problema de cargar un splash de inicio,
    > luego que solucione eso, me plantie el reto a que despues del splash
    > me cargara una ventana del login, y fue cuando utilize esta técnica.
    >
    > Entre al diseñador de objetos y cree una propiedad, para cambiar
    > el formmain
    >
    > mira a travez del la configuracion de propiedades de aplicacion,
    > seleccione como formulario splash el que tengo de presentacion y
    > como principal el del login, esto lo hice para no utilizar el metodo
    > main que mencionabas antes ya que con ese metodo tendria que llamar
    > a slash luego a login y luego al formulario que tendria que quedar
    > como principal de la aplicacion.

    Pero ¿por qué le tenéis esa especie de "tirria" al procedimiento 'Sub Main'?

    Todavía no llego a enterarme cual puede ser el motivo para que muchos de vosotros os negéis a especificar el procedimiento 'Sub Main' como objeto de inicio de la aplicación, más sabiendo que utilizáis Visual Basic como lenguaje de programación. ¿Qué problema tenéis con el procedimiento 'Sub Main'?

    Fíjate que fácil es mostrar un formulario tipo 'splash' y posteriormente llamar al formulario principal de nuestra aplicación, o al que nos venga en gana:

    Mostrar formulario principal al ocultarse la splashscreen

    Un saludo

     


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    sábado, 12 de noviembre de 2011 9:56
    Moderador