How to retrieve the current row and column while using drag and drop in WinForms GridControl?
Drag and drop
While using the DragDrop event, you
can get the dragged data and the dropped value points' X and Y positions. From
these points, use the PointToRowCol to get the row and column
index.
this.treeview.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView_ItemDrag);
this.treeview.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView_DragEnter);
this.grid.DragDrop += grid_DragDrop;
void grid_DragDrop(object sender, DragEventArgs e)
{
//allow the Drag from Treenode and drop it to Grid
if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))
{
Point pt = ((GridControl)sender).PointToClient(new Point(e.X, e.Y));
int row;
int col;
// to retrieve the current row and column number where the data is being dropped.
this.grid.PointToRowCol(pt, out row, out col);
MessageBox.Show("Row = " + row + "\t" + "Column = " + col);
}
}
private void treeView_ItemDrag(object sender,
System.Windows.Forms.ItemDragEventArgs e)
{
//enables the items to move
DoDragDrop(e.Item, DragDropEffects.Move);
}
private void treeView_DragEnter(object sender,
System.Windows.Forms.DragEventArgs e)
{
//allow the drag support to move
e.Effect = DragDropEffects.Move;
}AddHandler Me.treeview.ItemDrag, AddressOf Me.treeView_ItemDrag
AddHandler Me.treeview.DragEnter, AddressOf Me.treeView_DragEnter
AddHandler Me.grid.DragDrop, AddressOf grid_DragDrop
Private Sub grid_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs)
'allow the Drag from Treenode and drop it to Grid
If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", False) Then
Dim pt As Point = (CType(sender, GridControl)).PointToClient(New Point(e.X, e.Y))
Dim row As Integer
Dim col As Integer
'To retrieve the current row and column number where the data is being dropped.
Me.grid.PointToRowCol(pt, row, col)
MessageBox.Show("Row = " & row + Constants.vbTab & "Column = " & col)
End If
End Sub
Private Sub treeView_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs)
'enables the items to move
DoDragDrop(e.Item, DragDropEffects.Move)
End Sub
Private Sub treeView_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
'allow the drag support to move
e.Effect = DragDropEffects.Move
End Sub