una registros quitar primera ocultar manualmente fila eliminar datos como columna agregar c# winforms datagridview

c# - registros - Redimensionar de forma programada DataGridView para eliminar barras de desplazamiento



eliminar una columna de un datagridview en c# (2)

Tengo un DataGridView con un número definible por el usuario de columnas (en cualquier lugar de ~ 6-60) de datos numéricos. En el extremo superior, la cantidad de datos en la cuadrícula excede la que se puede mostrar en la pantalla a la vez. Tengo un gráfico que va con los datos. Me gustaría mantener los dos sincronizados, de modo que un tiempo específico T en el gráfico esté alineado verticalmente con el mismo tiempo en la cuadrícula.

Para hacer esto, me gustaría hacer que el DGV sea lo suficientemente ancho como para evitar una barra de desplazamiento horizontal, hacer que el gráfico sea igualmente ancho, y luego descargar el desplazamiento en un control de contenedor. Sin embargo, no puedo encontrar una manera de obtener directamente el ancho que necesitaría para configurar el DGV para quitar la barra de desplazamiento de él.


Para evitar que DataGridView muestre su barra de desplazamiento horizontal, deberá asegurarse de que el ancho de su DGV no sea inferior al ancho de sus columnas más el ancho del encabezado de la fila. También necesitará ajustar los dos píxeles que se agregan al ancho (y alto) del control cuando su propiedad BorderStyle no es None .

Aquí hay un método que devolverá este valor mínimo para un DataGridView dado:

/// <summary> /// Return the minimum width in pixels a DataGridView can be before the control''s vertical scrollbar would be displayed. /// </summary> private int GetDgvMinWidth(DataGridView dgv) { // Add two pixels for the border for BorderStyles other than None. var controlBorderWidth = (dgv.BorderStyle == BorderStyle.None) ? 0 : 2; // Return the width of all columns plus the row header, and adjusted for the DGV''s BorderStyle. return dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) + dgv.RowHeadersWidth + controlBorderWidth; }


Esto cambiará el tamaño de las columnas para adaptarse al espacio que se les proporciona y eliminará la barra de desplazamiento horizontal.

dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

Esto redimensionará las columnas para convertirse en el ancho más pequeño posible y aún mantendrá los valores en las celdas visibles y automáticamente redimensionará la vista de cuadrícula de datos para que se ajuste a las columnas, pero la barra de desplazamiento horizontal puede aparecer si el formulario no es lo suficientemente grande. En ese caso, tendría que cambiar el tamaño del ancho del formulario.

dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;