2011-04-05 18 views
5

¿Cómo podemos definir el ancho de cada columna de acuerdo con la longitud de su contenido en un ListView? Odio tener que seguir cambiando el tamaño de cada columna en tiempo de ejecución. ¿Hay un documento de MSDN que tenga esta información? No puedo encontrar dónde debo miraranchos de automóviles en ListView

Gracias

Respuesta

5

revisión del método ColumnHeader.AutoResize(). Llámalo después de completar los elementos, el método OnLoad() del formulario es la primera oportunidad.

+0

Gracias, @Hans P. –

+0

El temporizador en S/O realmente me da la s. Me quedaba un minuto para esperar, y después de ese minuto, me dijeron 46 segundos, así que esperé 46 segundos. Luego dijo que quedaban 10 segundos. : @ –

+0

¡Gracias por esperar! –

0

lo tengo:

viewer.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); 
+2

Pero lo que si la columna está en blanco? Uno de los problemas comunes con el cambio de tamaño automático de columna es que, aunque lo ideal sería que se dimensionara de acuerdo con el contenido con un ancho mínimo del encabezado de columna, las propiedades de tamaño automático obligan a una columna vacía a tener unos dos píxeles de ancho. –

+0

Sí, @Justin, estoy de acuerdo contigo. Me di cuenta de eso. Lo que hice fue cambiar el tamaño de acuerdo con el contenido, y cuando sé que el contenido de las columnas no es más amplio que los encabezados de las columnas, simplemente cambio el tamaño de acuerdo con el encabezado. Pero aún así, esa no es la forma más conveniente de hacerlo. –

+1

Este es el problema que estoy teniendo. Quiero algo como "cambiar el tamaño por encabezado, luego por contenido SOLAMENTE si el contenido es más ancho que el encabezado". – crdx

28

Use las dos opciones de cambio de tamaño después de poblar la lista:

myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); 
myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); 

Esto le columnas de tamaño a la anchura de los datos de la columna, y luego restaurar ancho mínimo de los encabezados de columna sin destrozar completamente el original de tamaño automático.

+0

Guau, ejecutando ambos trabajos, gran truco! – bkribbs

Cuestiones relacionadas