| ID | Asunto | Fecha | Nick | |
| 51980 | Visualizacion retardada (a tirones) de los formularios!! | 28/02/10 19:53 | agl0809 | |  |
Hola compañeros, es mi primer Post!
Estoy liado con un proyecto VB.NET y la carga de mis formularios es "pesada", debido a la cantidad de controles que contiene, así como un diseño muy trabajado que hace que se muestre de forma escalonada (se relentiza) y crea un efecto un poco desagradable para el usuario.
Mi intención es no mostrar el formulario hasta que su contenido esté completamente cargado. He estado mirando los eventos Layout y Paint, pero no consigo ningun resultado.
Espero que me puedan ayudar o dar alguna pista, gracias de antemano. |
|
| ID | Asunto | Fecha | Nick | |
| 52046 | Re: Visualizacion retardada (a tirones) de los formularios!! (Resp: 51980) | 06/03/10 00:46 | luis1952 | |  |
Hola. Prueba a poner form1.visible=false y cuando este lleno la pones a true
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 52053 | Re: Visualizacion retardada (a tirones) de los formularios!! (Resp: 51980) | 06/03/10 14:06 | agl0809 | |  |
El control a los que me refiero (los que contiene los demás controles) es un USERCONTROL, de ahí que no pueda controlar cuando se han cargado todos los controles. USERCONTROL no cuenta con el evento "shown". De ahí que cualquier método donde intente controlar cuando se han cargado dichos controles es inviable.
Se que resumeLayout me ayudará con la tarea pero... el problema son los escasos eventos con los que cuenta USERCONTROL.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 52057 | Re: Visualizacion retardada (a tirones) de los formularios!! (Resp: 51980) | 06/03/10 18:42 | luis1952 | |  |
Di es un UserControl, lo tienes que tener puesto en una form por ejemplo form2 como usercontrol1. En el evento form2_Load le pones usercontrol1.visible=false y puedes cambiar el cursor a un reloj (hourglas o algo asi se llama). En usercontrol1 pones un evento terminar: Public Class Form2
.....
.....
Private Sub Form2
_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
usercontrol1.visible=false
End Sub
Private sub
UserControl1_TerminaCarga() 'esto lo pones con el edito:
seleccionas usercontrol1 y eventos
usercontrol1.visible=true
end sub
End Class
Public Class Usercontrol
' defines un evento
Public Event TerminaCarga()
....
'aqui miras si ha teerminado y en ese caso pones:
RaiseEvent TerminaCarga() ' dispara el evento
End Class[Editado: luis1952, 07/03/2010 01:14:37]
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 52058 | Re: Visualizacion retardada (a tirones) de los formularios!! (Resp: 51980) | 06/03/10 21:29 | agl0809 | |  |
He captado a la perfección la idea que has desarrollado. Te he dejado una captura del formulario del que hablo, que contiene un Panel (derecha del formulario) donde se cargan un userControls o otro según la opción (izquierda del formulario) que se ha marcado. Por lo tanto el formulario *sólo se carga la primera vez, y después sólo se va mandando el usercontrol que se necesite al panel. http://picasaweb.google.com/agl0809/2DAIJAEN?authkey=Gv1sRgCJSSxOim3MioXg#5445631940423970082
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 52061 | Re: Visualizacion retardada (a tirones) de los formularios!! (Resp: 52058) | 07/03/10 01:14 | luis1952 | |  |
Pes entonces pon donde mandas el usercontrol al panel 'antes de mandarlo
panel1.visible=false
' mandas usercontrol
Private sub
UserControl1_TerminaCarga() 'esto lo pones con el editor
seleccionas usercontrol1 y eventos
panel1.visible=true
end subPor cierto, no se que CPU usas pero no creo que deba ir tan lento. Procura optimizar codigo por ejemplo: Si una expresion como listbox.selectedIndex aparece varias veces, asigna Ind1=listbox.selectedIndex y en las siguientes usa Ind1. Es bastante mas rapido acceder a una variable definida por ti que a las propiedades de los objetos. Usa with
....
end with[Editado: luis1952, 07/03/2010 01:15:37] [luis1952, 07/03/2010 01:16:23] [luis1952, 07/03/2010 01:20:10]
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 52067 | Re: Visualizacion retardada (a tirones) de los formularios!! (Resp: 51980) | 07/03/10 13:29 | agl0809 | | |
Luis he implementado el código y ha quedado solventado el problema. Tomo en cuenta tu consejo y lo llevaré a la práctica a partir de ahora. Gracias y un saludo.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |