VENTANA CON AVANCES

05/10/2004 - 23:14 por MIGUEL JUAREZ | Informe spam
Saludos amigos:
Quiero hacer lo siguiente:
Tengo un windows form, que ejecuta una consulta, como esta tarda algo de
tiempo para mostrar en el grid los datos, decidí mostrar un form encima a
modo de showdialog, y mostrar un progress barr mientras no termine la
consulta, en cuanto termine y muestre, desearia que la ventana mostrara el
100% y ocultara esta ventanita, sin embargo, no he podido hacer esto, pues
mando a llamar al showdialog y ahi se queda, pero no ejecutza la consulta

el codigo que tengo:

el form1 que es el principal tiene:

Private Sub btnCargar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCargar.Click

Dim myavance As New avance
'myavance.MdiParent = Me
myavance.ShowDialog()
'verifica si esta en estatus de abierta, sino, entonces carga
Me.NwDataset1.Clear()
If Me.cnChecador.State <> ConnectionState.Open Then

Try

cnChecador.Open()
Catch ex As Exception
MessageBox.Show("ERROR: " & ex.ToString)

Finally

Me.daChecador.Fill(NwDataset1.datosderevision)
MsgBox("Datos cargados")
cnChecador.Close()
cnChecador.Dispose()

End Try

Else : MessageBox.Show("ERROR AL ABRIR")

End If

myavance.Close()

End Sub

Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click

Me.Dispose()

End

End Sub

-Y el form "avance" que es el modal tiene lo siguiente:

Private Sub tmrConsulta_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles tmrConsulta.Tick

If Me.ProgressBar1.Value < 90 Then

Me.ProgressBar1.Value += 5

End If

End Sub


Private Sub avance_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

Me.ProgressBar1.Show()
Me.tmrConsulta.Start()

End Sub

Private Sub avance_Closing(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

Me.tmrConsulta.Stop()
Me.Dispose()

End Sub



Sin embargo, luego que este inicia, lo otro sequeda pasmado, jejejee

Una ayudita, por favor...

GRACIAS

Preguntas similare

Leer las respuestas

#1 Oscar
05/10/2004 - 22:47 | Informe spam
Hola,

Creo que con ShowDialog abres el formulario modal, y por lo tanto, hasta que no lo cierres no se
seguirá ejecutando el resto del código que tienes después...

Saludos,


"MIGUEL JUAREZ" escribió en el mensaje
news:%23Tx3z%
Saludos amigos:
Quiero hacer lo siguiente:
Tengo un windows form, que ejecuta una consulta, como esta tarda algo de
tiempo para mostrar en el grid los datos, decidí mostrar un form encima a
modo de showdialog, y mostrar un progress barr mientras no termine la
consulta, en cuanto termine y muestre, desearia que la ventana mostrara el
100% y ocultara esta ventanita, sin embargo, no he podido hacer esto, pues
mando a llamar al showdialog y ahi se queda, pero no ejecutza la consulta

el codigo que tengo:

el form1 que es el principal tiene:

Private Sub btnCargar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCargar.Click

Dim myavance As New avance
'myavance.MdiParent = Me
myavance.ShowDialog()
'verifica si esta en estatus de abierta, sino, entonces carga
Me.NwDataset1.Clear()
If Me.cnChecador.State <> ConnectionState.Open Then

Try

cnChecador.Open()
Catch ex As Exception
MessageBox.Show("ERROR: " & ex.ToString)

Finally

Me.daChecador.Fill(NwDataset1.datosderevision)
MsgBox("Datos cargados")
cnChecador.Close()
cnChecador.Dispose()

End Try

Else : MessageBox.Show("ERROR AL ABRIR")

End If

myavance.Close()

End Sub

Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnSalir.Click

Me.Dispose()

End

End Sub

-Y el form "avance" que es el modal tiene lo siguiente:

Private Sub tmrConsulta_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles tmrConsulta.Tick

If Me.ProgressBar1.Value < 90 Then

Me.ProgressBar1.Value += 5

End If

End Sub


Private Sub avance_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

Me.ProgressBar1.Show()
Me.tmrConsulta.Start()

End Sub

Private Sub avance_Closing(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

Me.tmrConsulta.Stop()
Me.Dispose()

End Sub



Sin embargo, luego que este inicia, lo otro sequeda pasmado, jejejee

Una ayudita, por favor...

GRACIAS



Respuesta Responder a este mensaje
#2 MIGUEL JUAREZ
06/10/2004 - 01:00 | Informe spam
Gracias, mira, si, ya se sigue ejecutando, pero resulta que ahora pasa lo
siguiente, se ejcuta la ventana y se queda como pasmada, luego se ejecuta la
consulta y hasta que el datagrid se llena, continua lo programado en la
ventanita



"Oscar" <veletapgARROBAwanadooPUNTOcom> escribió en el mensaje
news:eL%
Hola,

Creo que con ShowDialog abres el formulario modal, y por lo tanto, hasta


que no lo cierres no se
seguirá ejecutando el resto del código que tienes después...

Saludos,


"MIGUEL JUAREZ" escribió en el mensaje
news:%23Tx3z%
> Saludos amigos:
> Quiero hacer lo siguiente:
> Tengo un windows form, que ejecuta una consulta, como esta tarda algo de
> tiempo para mostrar en el grid los datos, decidí mostrar un form encima


a
> modo de showdialog, y mostrar un progress barr mientras no termine la
> consulta, en cuanto termine y muestre, desearia que la ventana mostrara


el
> 100% y ocultara esta ventanita, sin embargo, no he podido hacer esto,


pues
> mando a llamar al showdialog y ahi se queda, pero no ejecutza la


consulta
>
> el codigo que tengo:
>
> el form1 que es el principal tiene:
>
> Private Sub btnCargar_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles btnCargar.Click
>
> Dim myavance As New avance
> 'myavance.MdiParent = Me
> myavance.ShowDialog()
> 'verifica si esta en estatus de abierta, sino, entonces carga
> Me.NwDataset1.Clear()
> If Me.cnChecador.State <> ConnectionState.Open Then
>
> Try
>
> cnChecador.Open()
> Catch ex As Exception
> MessageBox.Show("ERROR: " & ex.ToString)
>
> Finally
>
> Me.daChecador.Fill(NwDataset1.datosderevision)
> MsgBox("Datos cargados")
> cnChecador.Close()
> cnChecador.Dispose()
>
> End Try
>
> Else : MessageBox.Show("ERROR AL ABRIR")
>
> End If
>
> myavance.Close()
>
> End Sub
>
> Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles btnSalir.Click
>
> Me.Dispose()
>
> End
>
> End Sub
>
> -Y el form "avance" que es el modal tiene lo siguiente:
>
> Private Sub tmrConsulta_Tick(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles tmrConsulta.Tick
>
> If Me.ProgressBar1.Value < 90 Then
>
> Me.ProgressBar1.Value += 5
>
> End If
>
> End Sub
>
>
> Private Sub avance_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
>
> Me.ProgressBar1.Show()
> Me.tmrConsulta.Start()
>
> End Sub
>
> Private Sub avance_Closing(ByVal sender As Object, ByVal e As
> System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
>
> Me.tmrConsulta.Stop()
> Me.Dispose()
>
> End Sub
>
>
>
> Sin embargo, luego que este inicia, lo otro sequeda pasmado, jejejee
>
> Una ayudita, por favor...
>
> GRACIAS
>
>
>



Respuesta Responder a este mensaje
#3 Oscar
06/10/2004 - 14:18 | Informe spam
No te entiendo... pero si a lo que te refieres es que aunque todo funciona perfectamente, el
formulario que tiene la barra de progreso no se actualiza, prueba a poner lo siguiente,

Después de:
Me.ProgressBar1.Value += 5

Pones:
DoEvents

Si no es eso, dilo, saludos,
Oscar

"MIGUEL JUAREZ" escribió en el mensaje
news:
Gracias, mira, si, ya se sigue ejecutando, pero resulta que ahora pasa lo
siguiente, se ejcuta la ventana y se queda como pasmada, luego se ejecuta la
consulta y hasta que el datagrid se llena, continua lo programado en la
ventanita



"Oscar" <veletapgARROBAwanadooPUNTOcom> escribió en el mensaje
news:eL%
> Hola,
>
> Creo que con ShowDialog abres el formulario modal, y por lo tanto, hasta
que no lo cierres no se
> seguirá ejecutando el resto del código que tienes después...
>
> Saludos,
>
>
> "MIGUEL JUAREZ" escribió en el mensaje
> news:%23Tx3z%
> > Saludos amigos:
> > Quiero hacer lo siguiente:
> > Tengo un windows form, que ejecuta una consulta, como esta tarda algo de
> > tiempo para mostrar en el grid los datos, decidí mostrar un form encima
a
> > modo de showdialog, y mostrar un progress barr mientras no termine la
> > consulta, en cuanto termine y muestre, desearia que la ventana mostrara
el
> > 100% y ocultara esta ventanita, sin embargo, no he podido hacer esto,
pues
> > mando a llamar al showdialog y ahi se queda, pero no ejecutza la
consulta
> >
> > el codigo que tengo:
> >
> > el form1 que es el principal tiene:
> >
> > Private Sub btnCargar_Click(ByVal sender As System.Object, ByVal e As
> > System.EventArgs) Handles btnCargar.Click
> >
> > Dim myavance As New avance
> > 'myavance.MdiParent = Me
> > myavance.ShowDialog()
> > 'verifica si esta en estatus de abierta, sino, entonces carga
> > Me.NwDataset1.Clear()
> > If Me.cnChecador.State <> ConnectionState.Open Then
> >
> > Try
> >
> > cnChecador.Open()
> > Catch ex As Exception
> > MessageBox.Show("ERROR: " & ex.ToString)
> >
> > Finally
> >
> > Me.daChecador.Fill(NwDataset1.datosderevision)
> > MsgBox("Datos cargados")
> > cnChecador.Close()
> > cnChecador.Dispose()
> >
> > End Try
> >
> > Else : MessageBox.Show("ERROR AL ABRIR")
> >
> > End If
> >
> > myavance.Close()
> >
> > End Sub
> >
> > Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As
> > System.EventArgs) Handles btnSalir.Click
> >
> > Me.Dispose()
> >
> > End
> >
> > End Sub
> >
> > -Y el form "avance" que es el modal tiene lo siguiente:
> >
> > Private Sub tmrConsulta_Tick(ByVal sender As System.Object, ByVal e As
> > System.EventArgs) Handles tmrConsulta.Tick
> >
> > If Me.ProgressBar1.Value < 90 Then
> >
> > Me.ProgressBar1.Value += 5
> >
> > End If
> >
> > End Sub
> >
> >
> > Private Sub avance_Load(ByVal sender As System.Object, ByVal e As
> > System.EventArgs) Handles MyBase.Load
> >
> > Me.ProgressBar1.Show()
> > Me.tmrConsulta.Start()
> >
> > End Sub
> >
> > Private Sub avance_Closing(ByVal sender As Object, ByVal e As
> > System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
> >
> > Me.tmrConsulta.Stop()
> > Me.Dispose()
> >
> > End Sub
> >
> >
> >
> > Sin embargo, luego que este inicia, lo otro sequeda pasmado, jejejee
> >
> > Una ayudita, por favor...
> >
> > GRACIAS
> >
> >
> >
>
>
>



Respuesta Responder a este mensaje
#4 Sergio Folgar
06/10/2004 - 19:46 | Informe spam
Hola..

Lo que yo haría sería lo siguiente:

+ crearía un hilo que ejecutase el formulario modal
+ a continuación ejecutaría la consulta
+ una vez terminada la consulta, eliminaría el hilo
llevando consigo la eliminación del formulario

Espero que te sirva de algo...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida