Try this code:
Sub Test
Set grid = Sys.Process("GridMainDemo").WinFormsObject("frmMain").WinFormsObject("panelControl1").WinFormsObject("gcContainer").WinFormsObject("TableView").WinFormsObject("gridControl1")
Sys.Process("GridMainDemo").WinFormsObject("frmMain").Activate
Call DragNDropCell(grid, 2, 3, 5, 2)
End Sub
Sub DragNDropCell(grid, sourceRow, sourceCol, destRow, destCol)
Set source = grid.MainView.ViewInfo.GetGridCellInfo_2(sourceRow, sourceCol)
Set dest = grid.MainView.ViewInfo.GetGridCellInfo_2(destRow, destCol)
x = source.Bounds.Left + source.Bounds.Width / 2
y = source.Bounds.Top + source.Bounds.height / 2
dX = dest.Bounds.Left - source.Bounds.Left + dest.Bounds.Width / 2
dY = dest.Bounds.Top - source.Bounds.Top + dest.Bounds.Height / 2
Call grid.Drag(x, y, dX, dY)
End Sub
In case you work with Card layout, use this code:
Sub Test_CardLayout
Set grid = Sys.Process("GridMainDemo").WinFormsObject("frmMain").WinFormsObject("panelControl1").WinFormsObject("gcContainer").WinFormsObject("CardViewControl").WinFormsObject("gridControl1")
Sys.Process("GridMainDemo").WinFormsObject("frmMain").Activate
Call DragNDropCellCardLayout(grid, 0, 2)
End Sub
Sub DragNDropCellCardLayout(grid, sourceCardIndex, destCardIndex)
Set source = grid.MainView.ViewInfo.Cards.Item(sourceCardIndex)
Set dest = grid.MainView.ViewInfo.Cards.Item(destCardIndex)
x = source.Bounds.Left + source.Bounds.Width / 2
y = source.Bounds.Top + source.Bounds.height / 2
dX = dest.Bounds.Left - source.Bounds.Left + dest.Bounds.Width / 2
dY = dest.Bounds.Top - source.Bounds.Top + dest.Bounds.Height / 2
Call grid.Drag(x, y, dX, dY)
End Sub