Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 17-nov-2005, 13:10   #1 (permalink)
Mary_ ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 163
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.
Mary_ está desconectado   Responder Citando
Antiguo 18-nov-2005, 00:39   #2 (permalink)
fredy666 está en el buen camino
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 318
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
fredy666 está desconectado   Responder Citando
Antiguo 18-nov-2005, 02:51   #3 (permalink)
Mary_ ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 163
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.
Mary_ está desconectado   Responder Citando
Antiguo 18-nov-2005, 05:18   #4 (permalink)
Mary_ ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 163
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
Mary_ está desconectado   Responder Citando
Antiguo 18-nov-2005, 05:31   #5 (permalink)
fredy666 está en el buen camino
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 318
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.
fredy666 está desconectado   Responder Citando
Antiguo 18-nov-2005, 09:00   #6 (permalink)
pip<fLaSh> ha deshabilitado el karma
 
Avatar de pip<fLaSh>
 
Fecha de Ingreso: noviembre-2004
Ubicación: Aguascalientes, México
Mensajes: 63
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.
pip<fLaSh> está desconectado   Responder Citando
Antiguo 18-nov-2005, 13:15   #7 (permalink)
pumisu ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2005
Mensajes: 16
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 ........
pumisu está desconectado   Responder Citando
Antiguo 19-nov-2005, 04:36   #8 (permalink)
Mary_ ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 163
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.
Mary_ está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 3,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:05.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93