Uno siempre aprende nuevas cosas colaborando en los foros.
Hoy un compañero preguntó como se podia tener dos DataGridViews con las columnas visibles sincronizadas, es decir, que si uno se desplaza horizontalmente utilizando el scrollbar de uno de los datagridviews, el otro también se desplace exactamente igual que el primero
La solución resultó ser bastante simple, todo es cuestión de actualizar la propiedad HorizontalScrollingOffset de un DataGridView, desde el evento Scroll del otro.
Primero manejamos el evento Scroll del dataGridView1, actualizando la propiedad HorizontalScrollingOffset del dataGridView2, asi:
private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
{
dataGridView2.HorizontalScrollingOffset = e.NewValue;
}
ahora a la inversa:
private void dataGridView2_Scroll(object sender, ScrollEventArgs e)
{
dataGridView1.HorizontalScrollingOffset = e.NewValue;
}
Nada más, ahora podremos desplazarnos con el scrollbar de cualquiera de de los datagridviews y el otro se desplazará automáticamente.
Un código muy simple, con muchas posibles aplicaciones.