using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace WindowsApplication2...{ public class Form1 : System.Windows.Forms.Form ...{ private System.Windows.Forms.ListBox listBox1; int indexofsource;//拖动的起始索引 int indexoftarget; //拖动的结束索引 private System.ComponentModel.Container components = null; public Form1() ...{ InitializeComponent(); } protected override void Dispose(bool disposing) ...{ if (disposing) ...{ if (components != null) ...{ components.Dispose(); } } base.Dispose(disposing); } Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码 private void InitializeComponent() ...{ this.listBox1 = new System.Windows.Forms.ListBox(); this.SuspendLayout(); // // listBox1 // this.listBox1.AllowDrop = true;//这个属性一定要设置为true; this.listBox1.ItemHeight = 12; this.listBox1.Items.AddRange(new object[] ...{ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}); this.listBox1.Location = new System.Drawing.Point(16, 8); this.listBox1.Name = "listBox1"; this.listBox1.ScrollAlwaysVisible = true; this.listBox1.Size = new System.Drawing.Size(264, 136); this.listBox1.TabIndex = 0; this.listBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDown); this.listBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.listBox1_DragOver); this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.Add(this.listBox1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion [STAThread] static void Main() ...{ Application.Run(new Form1()); } private void listBox1_MouseDown(object sender, System.Windows.Forms.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, System.Windows.Forms.DragEventArgs e) ...{ //拖动源和放置的目的地一定是一个ListBox 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, System.Windows.Forms.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; } } }}