c# - imagen - DataGridView, ajuste de ancho y alto a DataTable
autosizecolumnsmode datagridview c# (5)
Estoy vinculando una DataTable a GridView. No se ajusta a la altura y el ancho de la DataTable. ¿Cómo puedo estirar el ancho de la grilla que muestro todas las columnas y reducir la altura si las filas son pocas?
Para autoejecutar las columnas para que se ajusten a los datos (a lo ancho) y luego autosize el formulario para que se ajuste a la vista de cuadrícula (en lo que respecta al ancho), use el siguiente código:
foreach (DataGridViewColumn column in dataGridView1.Columns)
column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
this.Width = dataGridView1.Width + 100;
donde dataGridView1 es el nombre de Datagridview en este ejemplo, y this
se refiere a la instancia del formulario. El 100 es una constante para la cantidad de píxeles más ancha que desea la forma que la vista de la cuadrícula de datos. (nota: es posible que desee verificar el ancho para asegurarse de que la forma y la cuadrícula de datos no sean más anchas que la pantalla del usuario)
Para autoejecutar la vista de cuadrícula de datos para que se ajuste a las filas (en altura) y luego autosize el formulario para que se ajuste a la vista de cuadrícula (en altura), use el siguiente código:
int totalRowHeight = dataGridView1.ColumnHeadersHeight;
foreach (DataGridViewRow row in dataGridView1.Rows)
totalRowHeight += row.Height;
dataGridView1.Height = totalRowHeight;
this.Height = dataGridView1.Height + 100;
donde dataGridView1 es el nombre de Datagridview en este ejemplo, y this
se refiere a la instancia del formulario. El 100 es una constante para la cantidad de píxeles que desea más alta que la vista de cuadrícula de datos. (Nota: es posible que desee verificar la altura para asegurarse de que la forma y la cuadrícula de datos no sean más altas que la pantalla del usuario)
solo ve a las propiedades de tu cuadrícula de datos =>
y luego en la sección Diseño =>
AutoSizeColumnsMode lo establece en Completar ...
Esto funciona suponiendo que todas las filas tienen la misma altura, incluso cuando la primera fila de encabezado tiene una altura diferente (por ejemplo, se envuelven los encabezados largos)
If List.RowCount = 0 Then
List.Height = 0
ElseIf List.RowCount = 1 Then
List.Height = List.ColumnHeadersHeight
Else
List.Height = List.ColumnHeadersHeight + List.Rows(1).Height * (List.RowCount + 1)
End If
Establezca la columna datagridviewautosizecolumn en "All" Luego, en el formulario que contiene la vista de cuadrícula de datos, suponiendo que rellene la vista de cuadrícula de datos en el controlador de eventos de carga o algún otro controlador de eventos como desee donde sea que se carguen los datos (debe ser posterior a la carga de datos) : (VB)
Me.Width = DataGridView1.Width + 50 '' Number of pixels wider than the datagridview you want the form to be.
datagridview1 es el nombre de su control de datagridview. Me hace referencia al formulario que contiene el control datagridview.
Es posible que necesite maximizar la ventana o anclarla en la parte superior e izquierda para garantizar su instalación, según la cantidad de datos que se llenen.
Primero, su formulario debería ser lo suficientemente grande para que DataGridView se expanda y muestre todas las columnas. En la captura de pantalla, no parece lo suficientemente amplia. Puede establecer el tamaño de la vista de cuadrícula de datos manualmente, pero es raro que conozca el ancho exacto de cada columna en el momento del diseño porque no sabe cuánto habrá en cada columna en tiempo de ejecución. Por ejemplo, su columna de descripción de facturas podría tener cadenas que varían en longitud.
Lo que normalmente hago en casos como el suyo es poner un control de división en el formulario. El cuadro de texto en la parte superior y el botón Importar facturas irían en el panel superior del control del divisor, y el DataGridView iría en el panel inferior. Luego, configure la propiedad Dock del DataGridView para llenar el panel inferior del control del divisor. De esta forma, cuando el usuario cambie el tamaño del formulario, DataGridView crecerá / disminuirá con él.
Puede controlar aún más la forma en que aparecen las columnas configurando la propiedad DataGridView.AutoResizeRows.
Simplemente dándole esto como una opción, no estoy al tanto de ninguna manera de hacer que la grilla se redimensione automáticamente a los datos que muestra. Es posible que pueda calcular el alto / ancho de las filas y luego cambiar manualmente el tamaño de la cuadrícula en el código, pero me aseguraré de que realmente necesite ese requisito primero.