.net - barra - ScrollBar en DataGridView
barra de desplazamiento datagridview c# (2)
Tengo un winform en vs2008 que contiene un DataGridView. La cuadrícula de datos contiene una lista con varias columnas. Estos son de ancho fijo, excepto uno que he configurado para tomar el espacio restante y rellenar el ancho de la vista. El formulario de win es redimensionable en todas las direcciones.
El problema que trato de resolver es que cuando aumento el tamaño vertical de la ventana, la barra de desplazamiento desaparece y las columnas se ajustan a la derecha para llenar el espacio adicional. Lo que me gustaría que ocurra es que la barra de desplazamiento vertical nunca desaparece. Establecer ScrollBars en vertical en las propiedades de DataGridView no hace esto.
¿Es esto posible de lograr? Y, si es así, ¿cómo hago que la barra de desplazamiento vertical siempre esté visible?
Intente subclasificar DataGridView y manejar el evento VisibleChanged de VerticalScrollBar. Debería poder establecer la propiedad Visible en True allí, anulando el comportamiento predeterminado.
Algo así, creo ...
public class SubclassedDataGridView : DataGridView
{
public SubclassedDataGridView (): base()
{
VerticalScrollBar.VisibleChanged += new EventHandler(VerticalScrollBar_VisibleChanged);
}
void VerticalScrollBar_VisibleChanged(object sender, EventArgs e)
{
VerticalScrollBar.Visible = true;
}
}
En mi caso, (re) clasificar la cuadrícula me ayudó. Prueba algo así:
if (gridName.SortedColumn == null)
gridName.Sort(gridNameColumns[columnName],ListSortDirection.Ascending);
else
{
ListSortDirection dir;
if (gridName.SortOrder == SortOrder.Descending)
dir = ListSortDirection.Descending;
else dir = ListSortDirection.Ascending;
gridName.Sort(gridName.SortedColumn, dir);
}