Carga de formulario

11/01/2007 - 14:17 por Francisco Matamoros | Informe spam
Buenas grupo.
Tengo un formulario cuyos controles son cargados desde una bd SQL. El
problema que me encuentro es que cuando el formulario tiene muchos controles
(varios textbox con sus labels, combos, groupbox, ...) me aparece en
pantalla en modo "persiana", es decir, aparecen más o menos despacito. He
afinado bastante la carga y ahora no da tan mala impresión, pero me gustaría
que fuera imperceptible al usuario. Sé que vosotros sabréis orientarme.
Saludos.

Preguntas similare

Leer las respuestas

#1 Juan Diego Bueno
11/01/2007 - 14:22 | Informe spam
Curioso, a mi me pasa algo similar... Aún quitando controles enlazados
a la BD, el formulario se muestra de forma gradual dando una impresión
no muy buena...El formulario tiene varios controles y colores

Tiene además un tabcontrol con dos tabpages y el mismo efecto se
produce al cambiar de la tab menos recargada de controles a la que
está más.

Puesto que no es prioritario para el funcionamiento de la aplicación,
no he profundizado en como se puede eliminar esto... pero sería
interesante ver si alguien tiene algo que aportar al respecto.

Saludos

Francisco Matamoros ha escrito:

Buenas grupo.
Tengo un formulario cuyos controles son cargados desde una bd SQL. El
problema que me encuentro es que cuando el formulario tiene muchos controles
(varios textbox con sus labels, combos, groupbox, ...) me aparece en
pantalla en modo "persiana", es decir, aparecen más o menos despacito. He
afinado bastante la carga y ahora no da tan mala impresión, pero me gustaría
que fuera imperceptible al usuario. Sé que vosotros sabréis orientarme.
Saludos.
Respuesta Responder a este mensaje
#2 Octavio Hernandez
11/01/2007 - 16:07 | Informe spam
Francisco,

La doble buferización puede ayudar.

http://msdn2.microsoft.com/en-us/li...fered.aspx

Mira también este documento:

http://www.bobpowell.net/doublebuffer.htm

Slds - Octavio


"Francisco Matamoros" escribió en el mensaje
news:
Buenas grupo.
Tengo un formulario cuyos controles son cargados desde una bd SQL. El
problema que me encuentro es que cuando el formulario tiene muchos
controles (varios textbox con sus labels, combos, groupbox, ...) me
aparece en pantalla en modo "persiana", es decir, aparecen más o menos
despacito. He afinado bastante la carga y ahora no da tan mala impresión,
pero me gustaría que fuera imperceptible al usuario. Sé que vosotros
sabréis orientarme.
Saludos.


Respuesta Responder a este mensaje
#3 Marc Solé
11/01/2007 - 18:04 | Informe spam
Juan Diego, yo me he encontrado con un caso similar al que comentas. Tengo
un formulario con un tabControl, con 1 tabPage al inicio con muchos
controles en su interior. Mediante código yo voy creando más tabPages,
pasando los controles de una a otra mediante código.

Yo lo solucioné deshabilitando todos los eventos que me invocan los
controles (por ejemplo TextBox_TextChanged, etc...), ya que al cargarlos no
los necesito, de esta forma no se ejecutan y se agiliza el proceso de carga.

Otra cosa que hice es poner todos los controles dentro de un Panel, ponerlo
como no visible al hacer la carga, y volverlo a mostrar cuando se ha acabado
la carga.

Espero que ta haya servido de ayuda.

Marc



"Juan Diego Bueno" escribió en el mensaje
news:
Curioso, a mi me pasa algo similar... Aún quitando controles enlazados
a la BD, el formulario se muestra de forma gradual dando una impresión
no muy buena...El formulario tiene varios controles y colores

Tiene además un tabcontrol con dos tabpages y el mismo efecto se
produce al cambiar de la tab menos recargada de controles a la que
está más.

Puesto que no es prioritario para el funcionamiento de la aplicación,
no he profundizado en como se puede eliminar esto... pero sería
interesante ver si alguien tiene algo que aportar al respecto.

Saludos

Francisco Matamoros ha escrito:

Buenas grupo.
Tengo un formulario cuyos controles son cargados desde una bd SQL. El
problema que me encuentro es que cuando el formulario tiene muchos
controles
(varios textbox con sus labels, combos, groupbox, ...) me aparece en
pantalla en modo "persiana", es decir, aparecen más o menos despacito. He
afinado bastante la carga y ahora no da tan mala impresión, pero me
gustaría
que fuera imperceptible al usuario. Sé que vosotros sabréis orientarme.
Saludos.
Respuesta Responder a este mensaje
#4 Juan Diego Bueno
12/01/2007 - 08:59 | Informe spam
Gracias Marc...

Una duda, que puede ser casi de conocimientos básicos, pero a ver si
estoy en lo cierto.
Para deshabilitar los eventos, te refieres a hacer un -=xxxevent en
cada control de todos los eventos de ese control? o sólo aquellos de
los que tenemos manejador de eventos? O hay una función para
deshabilitar y luego habilitar? (no me consta esto último, más que en
visual basic)

Saludos

Marc Solé ha escrito:

Juan Diego, yo me he encontrado con un caso similar al que comentas. Tengo
un formulario con un tabControl, con 1 tabPage al inicio con muchos
controles en su interior. Mediante código yo voy creando más tabPages,
pasando los controles de una a otra mediante código.

Yo lo solucioné deshabilitando todos los eventos que me invocan los
controles (por ejemplo TextBox_TextChanged, etc...), ya que al cargarlos no
los necesito, de esta forma no se ejecutan y se agiliza el proceso de carga.

Otra cosa que hice es poner todos los controles dentro de un Panel, ponerlo
como no visible al hacer la carga, y volverlo a mostrar cuando se ha acabado
la carga.

Espero que ta haya servido de ayuda.

Marc



"Juan Diego Bueno" escribió en el mensaje
news:
Curioso, a mi me pasa algo similar... Aún quitando controles enlazados
a la BD, el formulario se muestra de forma gradual dando una impresión
no muy buena...El formulario tiene varios controles y colores

Tiene además un tabcontrol con dos tabpages y el mismo efecto se
produce al cambiar de la tab menos recargada de controles a la que
está más.

Puesto que no es prioritario para el funcionamiento de la aplicación,
no he profundizado en como se puede eliminar esto... pero sería
interesante ver si alguien tiene algo que aportar al respecto.

Saludos

Francisco Matamoros ha escrito:

> Buenas grupo.
> Tengo un formulario cuyos controles son cargados desde una bd SQL. El
> problema que me encuentro es que cuando el formulario tiene muchos
> controles
> (varios textbox con sus labels, combos, groupbox, ...) me aparece en
> pantalla en modo "persiana", es decir, aparecen más o menos despacito. He
> afinado bastante la carga y ahora no da tan mala impresión, pero me
> gustaría
> que fuera imperceptible al usuario. Sé que vosotros sabréis orientarme.
> Saludos.
Respuesta Responder a este mensaje
#5 Marc Solé
12/01/2007 - 09:53 | Informe spam
Hola Juan Diego,

Para deshabilitar los eventos, efectivamente, tienes que hacer
un -=xxxevent, y para volver a habilitarlos un +=xxxevent, como en el
ejemplo que te pongo.

Deshabilitar:
dgvItems.CellClick -= new DataGridViewCellEventHandler(dgvItems_CellClick);

dgvItems.CellValueChanged -= new
DataGridViewCellEventHandler(dgvItems_CellValueChanged);

dgvItems.CellEndEdit -= new
DataGridViewCellEventHandler(dgvItems_CellEndEdit);

dgvItems.CellBeginEdit -= new
DataGridViewCellCancelEventHandler(dgvItems_CellBeginEdit);


Habilitar:
dgvItems.CellClick += new DataGridViewCellEventHandler(dgvItems_CellClick);

dgvItems.CellValueChanged += new
DataGridViewCellEventHandler(dgvItems_CellValueChanged);

dgvItems.CellEndEdit += new
DataGridViewCellEventHandler(dgvItems_CellEndEdit);

dgvItems.CellBeginEdit += new
DataGridViewCellCancelEventHandler(dgvItems_CellBeginEdit);

Yo sólo deshabilito los eventos que se ejecutan cuando se cargan los
controles. Para saber los que se ejecutan, lo que hice fue debugar y así sé
los que se ejecutan (ya sé que suena rudimentario, pero bueno, es como lo
hice. No sé si hay otra forma de hacerlo).

Otra cosa que me encontré, es que al deshabilitar los eventos, havía veces
que no bastaba con ejecutar 1 sola vez el -= (no sé porqué...), así que lo
tengo puesto 2 veces, y así me aseguro que me los deshabilita (no pasa nada
por ejecutar más de 1 vez el código para deshabilitar, simplemente si ya
está deshabilitado, pues no hace nada).

Espero que te haya servido de ayuda.

Saludos,

Marc


"Juan Diego Bueno" escribió en el mensaje
news:
Gracias Marc...

Una duda, que puede ser casi de conocimientos básicos, pero a ver si
estoy en lo cierto.
Para deshabilitar los eventos, te refieres a hacer un -=xxxevent en
cada control de todos los eventos de ese control? o sólo aquellos de
los que tenemos manejador de eventos? O hay una función para
deshabilitar y luego habilitar? (no me consta esto último, más que en
visual basic)

Saludos

Marc Solé ha escrito:

Juan Diego, yo me he encontrado con un caso similar al que comentas. Tengo
un formulario con un tabControl, con 1 tabPage al inicio con muchos
controles en su interior. Mediante código yo voy creando más tabPages,
pasando los controles de una a otra mediante código.

Yo lo solucioné deshabilitando todos los eventos que me invocan los
controles (por ejemplo TextBox_TextChanged, etc...), ya que al cargarlos
no
los necesito, de esta forma no se ejecutan y se agiliza el proceso de
carga.

Otra cosa que hice es poner todos los controles dentro de un Panel,
ponerlo
como no visible al hacer la carga, y volverlo a mostrar cuando se ha
acabado
la carga.

Espero que ta haya servido de ayuda.

Marc



"Juan Diego Bueno" escribió en el mensaje
news:
Curioso, a mi me pasa algo similar... Aún quitando controles enlazados
a la BD, el formulario se muestra de forma gradual dando una impresión
no muy buena...El formulario tiene varios controles y colores

Tiene además un tabcontrol con dos tabpages y el mismo efecto se
produce al cambiar de la tab menos recargada de controles a la que
está más.

Puesto que no es prioritario para el funcionamiento de la aplicación,
no he profundizado en como se puede eliminar esto... pero sería
interesante ver si alguien tiene algo que aportar al respecto.

Saludos

Francisco Matamoros ha escrito:

> Buenas grupo.
> Tengo un formulario cuyos controles son cargados desde una bd SQL. El
> problema que me encuentro es que cuando el formulario tiene muchos
> controles
> (varios textbox con sus labels, combos, groupbox, ...) me aparece en
> pantalla en modo "persiana", es decir, aparecen más o menos despacito.
> He
> afinado bastante la carga y ahora no da tan mala impresión, pero me
> gustaría
> que fuera imperceptible al usuario. Sé que vosotros sabréis orientarme.
> Saludos.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida