首先设置DataGridView控件的AllowDrop属性为True,MultiSelect为False,SelectionMode为FullRowSelect
在窗口类里定义基本的变量:
// 数据表
DataTable dataTable = new DataTable();
// 拖动的源数据行索引
private int indexOfItemUnderMouseToDrag = -1;
// 拖动的目标数据行索引
private int indexOfItemUnderMouseToDrop = -1;
// 拖动中的鼠标所在位置的当前行索引
private int indexOfItemUnderMouseOver = -1;
// 不启用拖放的鼠标范围
private Rectangle dragBoxFromMouseDown = Rectangle.Empty;
然后在窗口加载时添加示例数据: