using System;
using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication4
{ public partial class Form1 : Form { int indexofsource;//拖动的起始索引 int indexoftarget; //拖动的结束索引 public Form1() { InitializeComponent(); }private void listBox1_MouseDown(object sender, MouseEventArgs e)
{ indexofsource = ((ListBox)sender).IndexFromPoint(e.X, e.Y); if (indexofsource != ListBox.NoMatches) { ((ListBox)sender).DoDragDrop(((ListBox)sender).Items[indexofsource].ToString(), DragDropEffects.All); }}
private void listBox1_DragOver(object sender, DragEventArgs e)
{ if (e.Data.GetDataPresent(typeof(System.String)) && ((ListBox)sender).Equals(listBox1)) { e.Effect = DragDropEffects.Move; } else e.Effect = DragDropEffects.None;}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{ ListBox listbox = (ListBox)sender; indexoftarget = listbox.IndexFromPoint(listbox.PointToClient(new Point(e.X, e.Y))); if (indexoftarget != ListBox.NoMatches) { string temp = listbox.Items[indexoftarget].ToString(); listbox.Items[indexoftarget] = listbox.Items[indexofsource]; listbox.Items[indexofsource] = temp; listbox.SelectedIndex = indexoftarget; }}
}}