private void MoveMiddle()
{
ListViewItem _item;
int idx1;
int idx2;
if (_curList.SelectedIndices.Count == 0) return;
int idx = _curList.SelectedIndices[0];
_item = _curList.GetItemAt(0, 25);
if (_item == null)
idx1 = 0;
else
idx1 = _item.Index;
_item = _curList.GetItemAt(0, _curList.ClientSize.Height - 1);
if (_item == null)
idx2 = _curList.VirtualListSize - 1;
else
idx2 = _item.Index;
idx -= Math.Abs(idx1 - idx2) / 2;
if (idx < 0) idx = 0;
_curList.EnsureVisible(_curList.VirtualListSize - 1);
_curList.EnsureVisible(idx);
}