• Viernes 19 de Abril de 2024, 14:56

Autor Tema:  Lentitud En Showdialog De Form Con Datagridview  (Leído 1584 veces)

mjcd

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Lentitud En Showdialog De Form Con Datagridview
« en: Domingo 7 de Octubre de 2007, 14:56 »
0
Buenas compañeros,

estoy un poco verde aún en c# y me ha surgido un problema haciendo una aplicacíon que espero me puedan ayudar a resolver.

Utilizo visual c# express 2005 y estoy accediendo a una base de datos Access mediante un dataset. Tengo un formulario en el que muestro todas las filas de una tabla.

En el formulario tengo un datagridview al cual, en el método constructor le asigno como datasource un objeto datatable que le paso como parámetro. Hasta ahí todo bien ya que he visto depurando que realmente este paso me lo hace instantaneamente. El problema esta cuando voy ha mostrar el form ya que tanto Show() como ShowDialog() se ralentizan demasiado cuando la tabla contiene unos 2000 registros. Supongo que será algo relacionado con el dibujo del datagridview ya que los datos los carga rapidamente pero es al mostrarme el formulario cuando se ralentiza. Una vez mostrado el formulario me puedo mover por el datagridview estupendamente sin ningún tipo de retardo.

¿Es posible que haya activado alguna propiedad del datagridview que esté ralentizando el proceso de mostrarlo? ¿Alguien conoce una solución a este problema ?

Gracias de antemano. Un saludo.

mjcd

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Lentitud En Showdialog De Form Con Datagridview
« Respuesta #1 en: Domingo 7 de Octubre de 2007, 22:38 »
0
Bueno, pues lo solucioné yo mismo pero voy a poner la solución por si alguien tiene el mismo problema.

El problema estaba en la propiedad AutoSizeColumnsMode que yo la había establecido como "AllCells", por lo que supongo que para mostrar e datagridview tenía que calcular el tamaño de las columnas, y para esto debía recorrer todo el datagridview para ver cual   de entre todas las celdas de cada columna es la de mayor tamaño y ajustar el tamaño de la columna a ese valor. Pues bien, en mi caso las lineas mostradas en principio tendrán el tamaño máximo por lo que  situando esta propiedad a "DisplayedCells" se soluciona el problema ya que ajusta el tamaño de cada columna en función de las celdas de dicha columna que se mostrarán en principio.

Espero sea util. Un saludo.