2012-01-26 10 views
5

Quiero ajustar todas las columnas de un DataGridView de acuerdo con el espacio requerido para mostrar todos sus datos por completo. Si el espacio requerido es menor que el espacio disponible, quiero que la cuadrícula llene este espacio excedente, pero si el espacio disponible no es suficiente para mostrar correctamente todas las columnas que quiero, DataGridView crea automáticamente un desplazamiento. ¿Hay una forma fácil de hacer esto?Ajuste las columnas de DataGridView para llenar el espacio disponible si la cuadrícula es más pequeña y use scroll en caso de que la cuadrícula sea más grande que el espacio disponible

Respuesta

5

Haga clic sobre DataGridView y seleccione "Editar columnas ...", luego vaya a "Diseño" y ajuste "AutoSizeMode" en "Rellenar".

Espero que esto es lo que estás buscando.

Saludos

0

propiedades DataGridView -> "AutoSizeMode" a "relleno" de no llenar todo el espacio disponible, sin embargo, si una columna es lo suficientemente grande como para ocupar mayor parte del espacio de rejilla, entonces resto del tamaño de las columnas se contraería .

Puede ser que usted puede intentar "AutoSizeMode" a "AllCells". Esto no solo llena toda la grilla, sino que también deja suficiente espacio para ver todas las columnas (con la barra de desplazamiento horizontal)

1

Ir a propiedad DataGridView, seleccione "AutoSizeColumnsMode". Establecer "Rellenar".

2

Si desea mantener su mesa (DataGridView) con formato de tal manera que todas las columnas son de tamaño automáticamente, pero una columna en particular, llena el espacio restante, se puede hacer algo como esto:

//Store the number of columns in a variable 
int columnCount = dataGridView.Columns.Count; 

//If we want the last column to fill the remaining space 
int lastColumnIndex = columnCount - 1; 

//Loop through each column and set the DataGridViewAutoSizeColumnMode 
//In this case, if we will set the size of all columns automatically, but have 
//the last column fill any extra space available. 
foreach(DataGridViewColumn column in dataGridView.Columns) 
{ 
    if (column.Index == columnCount - lastColumnIndex) //Last column will fill extra space 
    { 
     column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
    } 
    else //Any other column will be sized based on the max content size 
    { 
     column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 
    } 
} 

//Turn the scrollbars on for the DataGridView if needed 
dataGridView.ScrollBars = ScrollBars.Both; 
+0

Si bien esto funciona para el escenario que presentó en la apertura de la respuesta, no responde la pregunta del OP, que es cómo auto-dimensionar las columnas para mostrar todos sus datos y luego crear una barra de desplazamiento (creo) si corresponde – Taegost

+0

@Taegost Establecer el modo de tamaño automático en todas las columnas para AllCells hace que todas las columnas cambien de tamaño automáticamente para ajustarse a los datos en sus respectivas celdas. Hacer que la última columna llene el espacio restante hace lo que el OP desea. He editado mi respuesta original para establecer la propiedad ScrollBars en DataGridView. Establecer la propiedad Scrollbars en ScrollBars. Debería forzar a las barras de desplazamiento a aparecer si la tabla es demasiado grande para mostrarse. –

+0

Sí, tienes razón. SOrry, tuve un gran problema cuando publiqué ese comentario :) – Taegost

Cuestiones relacionadas