private void ProcessExtendSelection(GridPanel panel, bool extend) { int startIndex = panel.Columns.GetDisplayIndex(panel.SelectionColumnAnchor); int endIndex = panel.Columns.GetDisplayIndex(_HitColumn); if (startIndex > endIndex) { int tempIndex = startIndex; startIndex = endIndex; endIndex = tempIndex; } if (panel.OnlyColumnsSelected(startIndex, endIndex) == false) { if (extend == false) panel.ClearAll(); int[] map = panel.Columns.DisplayIndexMap; for (int i = 0; i < map.Length; i++) { GridColumn column = panel.Columns[map[i]]; if (column.Visible == true) { column.IsSelected = (i >= startIndex && i <= endIndex); } } } }