private static void MoveInGroup(ListViewItem item, int indexInGroup, List<ListViewItem> groupList, int delta, bool focus) { if (item.ListView.VirtualMode) { throw new InvalidOperationException(); } ListView listView = item.ListView; listView.BeginUpdate(); try { groupList.Remove(item); groupList.Insert(indexInGroup + delta, item); listView.Sort(new ListViewExtender.ListViewGroupIndexComparer(item.Group, groupList)); if (focus) { item.Focus(true, true); } } finally { listView.EndUpdate(); } }
private static void Move(ListViewItem item, int delta, bool focus) { if (item.ListView.VirtualMode) { throw new InvalidOperationException(); } ListView listView = item.ListView; listView.BeginUpdate(); try { int index = item.Index; listView.Items.RemoveAt(index); listView.Items.Insert(index + delta, item); if (focus) { item.Focus(true, true); } } finally { listView.EndUpdate(); } }