/// <summary>
        /// 当拖动某项时触发
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView1_ItemDrag( object sender, ItemDragEventArgs e )
        {
            listView1.DoDragDrop( e.Item, DragDropEffects.Move );
        }
        /// <summary>
        /// 鼠标拖动某项至该控件的区域
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView1_DragEnter( object sender, DragEventArgs e )
        {
            e.Effect = DragDropEffects.Move;
        }
        /// <summary>
        /// 拖动时拖着某项置于某行上方时
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView1_DragOver( object sender, DragEventArgs e )
        {
            Point ptScreen = new Point( e.X, e.Y );
            Point pt = listView1.PointToClient( ptScreen );
            ListViewItem item = listView1.GetItemAt( pt.X, pt.Y );
            if ( item != null )
                item.Selected = true;
        }
        /// <summary>
        /// 结束拖动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView1_DragDrop( object sender, DragEventArgs e )
        {
            ListViewItem draggedItem = (ListViewItem)e.Data.GetData( typeof( ListViewItem ) );
            Point ptScreen = new Point( e.X, e.Y );
            Point pt = listView1.PointToClient( ptScreen );
            ListViewItem TargetItem = listView1.GetItemAt( pt.X, pt.Y );//拖动的项将放置于该项之前   
            if ( null == TargetItem )
                return;
            listView1.Items.Insert( TargetItem.Index, (ListViewItem)draggedItem.Clone() );
            listView1.Items.Remove( draggedItem );
        }