Datagridview’de satırların yerlerini sürükle-bırak ile değiştirmek isterseniz, aşağıdaki 4 eventtaki (MouseMove, MouseDown, DragDrop, DragOver) değişiklikleri yapmanız yeterli olacaktır:
private Rectangle dragBoxFromMouseDown;
private int rowIndexFromMouseDown;
private int rowIndexOfItemUnderMouseToDrop;
private void datagridview1_MouseMove(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
// If the mouse moves outside the rectangle, start the drag.
if (dragBoxFromMouseDown != Rectangle.Empty &&
!dragBoxFromMouseDown.Contains(e.X, e.Y))
{
// Proceed with the drag and drop, passing in the list item.
if (datagridview1.Rows.Count != 0)
{
DragDropEffects dropEffect = datagridview1.DoDragDrop(
datagridview1.Rows[rowIndexFromMouseDown], DragDropEffects.Move);
}
}
}
}