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

#6 Vyacheslav Popov
12/01/2007 - 11:01 | Informe spam
Eso tiene muy mala pinta :(
¿Que hardware usáis?

Saludos.

"Marc Solé" escribió en el mensaje
news:Otzb$
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
#7 Juan Diego Bueno
12/01/2007 - 11:36 | Informe spam
En mi caso, en el equipo de la empresa:

Pentium D a 3 Ghz
1 Giga de RAM
Gráfica ATI RADEON x600

Además, otra cosa curiosa que me pasa es que la a veces un form hijo
de un mdi, al cambiar el foco a un control hace un parpadeo curioso...
que solo se produce en este control. Reseñar que utilizo el evento
keypress para sustituir la pulsación de Intro por un TAB y quizás
tenga algo que ver.

Estas cuestiones... no he dedicado tiempo a resolverlas porque hay
otras más prioritarias y prefiero que sea operativa la aplicación en
otros ámbitos

Saludos


Vyacheslav Popov ha escrito:

Eso tiene muy mala pinta :(
¿Que hardware usáis?

Saludos.

"Marc Solé" escribió en el mensaje
news:Otzb$
> 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
#8 Vyacheslav Popov
12/01/2007 - 14:04 | Informe spam
Hola, he intentado crear un form que crea 1000 textBox en el constructor y
los pone en el formulario y no he detectado ningún "efecto persiana"...


namespace PruebaParpadeoForm
{
public partial class FormPesado : Form
{
public FormPesado()
{
InitializeComponent();

for (int i = 0; i < 1000; i++)
{
TextBox tb = new TextBox();
tb.Location = new Point(i, i);
tb.Enter += new EventHandler(tb_Enter);
tb.Parent = this;
this.Controls.Add(tb);
}
}

void tb_Enter(object sender, EventArgs e)
{
((TextBox)sender).BringToFront();
}
}
}

Trabajo con:
Dual Core 2.13 GHz
1 GB de RAM
Gráfica NVIDIA 7300 GT


"Juan Diego Bueno" escribió en el mensaje
news:
En mi caso, en el equipo de la empresa:

Pentium D a 3 Ghz
1 Giga de RAM
Gráfica ATI RADEON x600

Además, otra cosa curiosa que me pasa es que la a veces un form hijo
de un mdi, al cambiar el foco a un control hace un parpadeo curioso...
que solo se produce en este control. Reseñar que utilizo el evento
keypress para sustituir la pulsación de Intro por un TAB y quizás
tenga algo que ver.

Estas cuestiones... no he dedicado tiempo a resolverlas porque hay
otras más prioritarias y prefiero que sea operativa la aplicación en
otros ámbitos

Saludos


Vyacheslav Popov ha escrito:

Eso tiene muy mala pinta :(
¿Que hardware usáis?

Saludos.

"Marc Solé" escribió en el mensaje
news:Otzb$
> 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
#9 Francisco Matamoros
12/01/2007 - 14:13 | Informe spam
El problema aparece cuando haces la carga desde una base de datos, al menos
a mí.
Saludos.
"Vyacheslav Popov" escribió en el
mensaje news:%
Hola, he intentado crear un form que crea 1000 textBox en el constructor y
los pone en el formulario y no he detectado ningún "efecto
persiana"...


namespace PruebaParpadeoForm
{
public partial class FormPesado : Form
{
public FormPesado()
{
InitializeComponent();

for (int i = 0; i < 1000; i++)
{
TextBox tb = new TextBox();
tb.Location = new Point(i, i);
tb.Enter += new EventHandler(tb_Enter);
tb.Parent = this;
this.Controls.Add(tb);
}
}

void tb_Enter(object sender, EventArgs e)
{
((TextBox)sender).BringToFront();
}
}
}

Trabajo con:
Dual Core 2.13 GHz
1 GB de RAM
Gráfica NVIDIA 7300 GT


"Juan Diego Bueno" escribió en el mensaje
news:
En mi caso, en el equipo de la empresa:

Pentium D a 3 Ghz
1 Giga de RAM
Gráfica ATI RADEON x600

Además, otra cosa curiosa que me pasa es que la a veces un form hijo
de un mdi, al cambiar el foco a un control hace un parpadeo curioso...
que solo se produce en este control. Reseñar que utilizo el evento
keypress para sustituir la pulsación de Intro por un TAB y quizás
tenga algo que ver.

Estas cuestiones... no he dedicado tiempo a resolverlas porque hay
otras más prioritarias y prefiero que sea operativa la aplicación en
otros ámbitos

Saludos


Vyacheslav Popov ha escrito:

Eso tiene muy mala pinta :(
¿Que hardware usáis?

Saludos.

"Marc Solé" escribió en el mensaje
news:Otzb$
> 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
#10 Juan Diego Bueno
12/01/2007 - 14:26 | Informe spam
Yo he quitado enlaces a BDs... y aún así hace un efecto como el que
os cuento.

No se trata de que tenga más o menos componentes, que no tiene muchos.
Quizás venga por la mezcla de colores, por la cantidad de recursos
gráficos, efectos visuales, etc...

Tiene colores diferentes para textbox, etiquetas, combos, fondo de
formulario, grid. Botones de comando y de tabpages con gráficos,etc...



Francisco Matamoros ha escrito:

El problema aparece cuando haces la carga desde una base de datos, al menos
a mí.
Saludos.
"Vyacheslav Popov" escribió en el
mensaje news:%
> Hola, he intentado crear un form que crea 1000 textBox en el constructor y
> los pone en el formulario y no he detectado ningún "efecto
> persiana"...
>
>
> namespace PruebaParpadeoForm
> {
> public partial class FormPesado : Form
> {
> public FormPesado()
> {
> InitializeComponent();
>
> for (int i = 0; i < 1000; i++)
> {
> TextBox tb = new TextBox();
> tb.Location = new Point(i, i);
> tb.Enter += new EventHandler(tb_Enter);
> tb.Parent = this;
> this.Controls.Add(tb);
> }
> }
>
> void tb_Enter(object sender, EventArgs e)
> {
> ((TextBox)sender).BringToFront();
> }
> }
> }
>
> Trabajo con:
> Dual Core 2.13 GHz
> 1 GB de RAM
> Gráfica NVIDIA 7300 GT
>
>
> "Juan Diego Bueno" escribió en el mensaje
> news:
> En mi caso, en el equipo de la empresa:
>
> Pentium D a 3 Ghz
> 1 Giga de RAM
> Gráfica ATI RADEON x600
>
> Además, otra cosa curiosa que me pasa es que la a veces un form hijo
> de un mdi, al cambiar el foco a un control hace un parpadeo curioso...
> que solo se produce en este control. Reseñar que utilizo el evento
> keypress para sustituir la pulsación de Intro por un TAB y quizás
> tenga algo que ver.
>
> Estas cuestiones... no he dedicado tiempo a resolverlas porque hay
> otras más prioritarias y prefiero que sea operativa la aplicación en
> otros ámbitos
>
> Saludos
>
>
> Vyacheslav Popov ha escrito:
>
>> Eso tiene muy mala pinta :(
>> ¿Que hardware usáis?
>>
>> Saludos.
>>
>> "Marc Solé" escribió en el mensaje
>> news:Otzb$
>> > 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.
>> >
>> >
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida