Foros del Web » Programación para mayores de 30 ;) » .NET »

Formulario Splash

Estas en el tema de Formulario Splash en el foro de .NET en Foros del Web. Hola, tengo un problema. El caso es que he hecho un formulario Splash d bienvenida a una aplicación y m encuentro con el problema d ...
  #1 (permalink)  
Antiguo 17/11/2005, 14:10
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Formulario Splash

Hola, tengo un problema. El caso es que he hecho un formulario Splash d bienvenida a una aplicación y m encuentro con el problema d q si el formulario principal tiene la propiedad WindowsState a Normal se muestra la pantalla Splash y acto seguido el formulario principal. En cambio si
cambio esa propiedad a Maximized (q es como lo kiero), al ejecutar se muestra el form splash y en segundo plano el principal (se muestra tb a la vez q l splash). Cómo puedo solucionar esto? gracias.
  #2 (permalink)  
Antiguo 18/11/2005, 01:39
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Yo lo que hago es cargar el splash, carga la barra progresbar, mientras compruebo las conexiones a SQLserver, y luego abro el formulario MDI que quiero, al tiempo que cierro el splash xD
  #3 (permalink)  
Antiguo 18/11/2005, 03:51
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Gracias Freddy pero es q lo he hecho d dos formas y d ninguna funciona n l caso d q l formulario principal tenga esa propiedad a Maximized, no lo entiendo. Si está a Normal si q aparece después d q se cierre
el Splash.
  #4 (permalink)  
Antiguo 18/11/2005, 06:18
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
hola, otra cosa muy extraña es q lo hice d otra forma muy sencilla, añadiendo al form splash un timer con interval=3000 y

Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
Me.Close()
Dim frmprincipal As New frmPrincipal
frmprincipal.Show()
End Sub

y si pongo q ejecute desd el form splash m muestra este pero tras los 3 segundos se para la ejecución en vez d pasar a mostrarme el formulario principal. No entiendo nada, alguien tiene alguna explicación para esto? gracias
  #5 (permalink)  
Antiguo 18/11/2005, 06:31
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Aqui te paso todo el codigo de mi formulario Splash, espero que lo puedas aprovechar xD

Código PHP:

Imports System
.Data
Imports System
.Data.SqlClient

Public Class frmSplash
    Dim intBarra 
As Integer 0
    Dim dblTransparencia 
As Double 0.0


    
Private Sub cmdAceptar_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles cmdAceptar.Click
        strUser 
Trim(txtusu.Text)
        
subBuscarCodigoUsuario()
        
frmInicio.Show()
        
Me.Hide()
    
End Sub
    
Private Sub frmSplash_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
      
        
'user = System.Environment.UserName
        prgBarraProgreso.Text = "Bienvenido " & System.Environment.UserName & ". Espere a que se cargue la aplicación ..."

        ' 
Aplicar el efecto
        prgBarraProgreso
.Position 0
        Timer1
.Enabled True
        Timer1
.Interval 100
    End Sub
    
Private Sub cmdCancelar_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles cmdCancelar.Click
        cargarsalir
()
    
End Sub
    
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
        intBarra 
+= 10
        prgBarraProgreso
.Text "Cargando la aplicación, por favor espere."
        
prgBarraProgreso.Position intBarra
        ProgressBar1
.Value intBarra
        
If prgBarraProgreso.Position 100 Then
            Timer1
.Stop()
            
Timer1.Enabled False
            ComprobarConexion
()
        
End If

        
dblTransparencia += 0.1
        
If dblTransparencia <> 1 Then
            Me
.Opacity dblTransparencia
        End 
If
    
End Sub
    
Private Sub cmdEmail_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles cmdEmail.Click
        frmEmailSoporte
.ShowDialog()
    
End Sub
    
Private Sub cargarsalir()
        
Application.Exit()
    
End Sub

    
Public Sub ComprobarConexion()
        
Timer1.Stop()
        
Timer1.Enabled False

        
Try

            
cnConexion = New Data.SqlClient.SqlConnection(strConexion)
            
cnConexion.Open() 'Abrimos la conexion
            cnConexion.Close()
            bolCargaOK = True
            prgBarraProgreso.Text = "Aplicación cargada con éxito."
            Me.Text = "Cargado OK"
        Catch ex As Exception
            ' 
MsgBox("Ha habido un problema con la conexión." vbCrLf "Póngase en contacto con el departamento DTI."MsgBoxStyle.Critical MsgBoxStyle.OkOnly"Error cargando.")
            
' bolCargaOK = False
            ' 
prgBarraProgreso.Text "Error al cargar la aplicación."
            ' prgBarraProgreso.ForeColor = Color.DarkRed
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try

        If bolCargaOK = True Then
            cmdAceptar.Visible = True
            cmdCancelar.Visible = True
        Else
            cmdAceptar.Visible = False
            cmdCancelar.Visible = True
            cmdEmail.Visible = True
        End If
        bolCargaOK = True

    End Sub
  
    Public Sub subBuscarCodigoUsuario()
        Try
            Dim myReader As SqlDataReader
            Dim miccommand As SqlCommand
            miccommand = New SqlCommand
            miccommand.Connection = strConexion1
            strConexion1.Open()
            miccommand.CommandText = "SELECT fkh_empleado from tblusuario where fldlogin='" & Trim(strUser) & "'"
            myReader = miccommand.ExecuteReader
            If myReader.Read Then '
Devuelve algo porque hay mensaje por leer
                intUser 
Trim(myReader("fkh_empleado"))
            
End If
            
strConexion1.Close()
        Catch 
ex As Exception

        End 
Try
    
End Sub
End 
Class 
Debe de estar el frmSplash como principal, es decir, que sea el primero en cargar.
  #6 (permalink)  
Antiguo 18/11/2005, 10:00
Avatar de pip<fLaSh>  
Fecha de Ingreso: noviembre-2004
Ubicación: Aguascalientes, México
Mensajes: 62
Antigüedad: 19 años, 5 meses
Puntos: 0
Yo lo hice de esta manera, espero que te sirva..

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 6000
Timer1.Start()
End Sub

Private Sub Timer1_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
Me.Visible = False
Dim f As New Form2
f.Show()
Timer1.Stop()
End Sub

..y con respecto a lo de Maximized y Normal, se me ocurre que podrias cambiar la propiedad a maximized despues que ya haya cargado el form.
  #7 (permalink)  
Antiguo 18/11/2005, 14:15
 
Fecha de Ingreso: octubre-2005
Mensajes: 16
Antigüedad: 18 años, 6 meses
Puntos: 0
Respecto a lo de la 'cosa extraña' lo que ocurre es que el formulario principal de tu aplicación es el Splash, con lo que cuando lo cierras, cierras tb la aplicación.

Si te fijas en el código que te ha pasado freddy666 mo hace un frmsplash.close, lo que hace es ocultar el formulario de Splash con el método hide, lo cual solventa el problema.

Aunque te recomiendo que utilices la el metodo run del objeto application,con la que pasarias a 'nombrar' a tu frmprincipal como el principal de la aplicación del siguiente modo:

Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick

Me.Close()
'inicia el formulario principal como el de la aplicacion
Application.Run(New frmPrincipal)
End Sub

Por cierto, de paso solucionas lo del maximized y normal tb.

Espero que te sirva de ayuda

Saludos ........
  #8 (permalink)  
Antiguo 19/11/2005, 05:36
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Mil gracias a todos!, no he probado todavía vuestras opciones pero he hecho lo q ha dicho pip<fLaSh> y ya va. Es una solución un poco así pero el caso es q funciona y no m voy a romper más la cabeza jeje.
saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:24.