public static void SortOnFirstVisibleColumn(System.Windows.Forms.DataGridView datagridview, bool bSortAscending = true) { if (datagridview.FirstDisplayedScrollingColumnIndex > -1) { if (bSortAscending) { datagridview.Sort(datagridview.Columns.GetFirstColumn(System.Windows.Forms.DataGridViewElementStates.Visible), System.ComponentModel.ListSortDirection.Ascending); } else { datagridview.Sort(datagridview.Columns.GetFirstColumn(System.Windows.Forms.DataGridViewElementStates.Visible), System.ComponentModel.ListSortDirection.Descending); } } datagridview.Refresh(); }