Moving rows within a FlexGrid is pretty straight forward. Using Drag and Drop is not required but since that is what you asked about. Make sure you set the DragIcon property of the grid to a valid icon or cursor.

VB Code:
  1. Private Sub MSFlexGrid1_DragDrop(Source As Control, x As Single, y As Single)
  2.     If Source Is Me.MSFlexGrid1 Then
  3.         Dim strTemp As String
  4.        
  5.         With Me.MSFlexGrid1
  6.             'make sure all columns are selected
  7.             'required for Clip propertye
  8.             .Col = 0: .ColSel = .Cols - 1
  9.            
  10.             strTemp = .Clip 'save the data in the selected row
  11.            
  12.             .RemoveItem .Row
  13.            
  14.             .AddItem strTemp, .MouseRow + 1 'moves row after
  15.        
  16.         End With
  17.     End If
  18. End Sub
  19.  
  20. Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  21.     If Button = vbRightButton And Me.MSFlexGrid1.MouseCol = 0 Then
  22.         Me.MSFlexGrid1.Drag vbBeginDrag
  23.         Me.MSFlexGrid1.Row = Me.MSFlexGrid1.MouseRow
  24.     End If
  25. End Sub