using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DevExpress.XtraTreeList.Nodes; namespace StandardTreeViewSelectionBehaviour { public partial class Form1 : Form { public Form1() { InitializeComponent(); } TreeListNode previousFocusedNode; long lastFocusChangeTicks; const long DragDropStartThreshold = 500; private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) { previousFocusedNode = e.OldNode; lastFocusChangeTicks = Environment.TickCount; } private void treeList1_DragEnter(object sender, DragEventArgs e) { if(Environment.TickCount - lastFocusChangeTicks > DragDropStartThreshold) previousFocusedNode = null; } private void treeList1_DragDrop(object sender, DragEventArgs e) { this.BeginInvoke(new MethodInvoker(RestoreLastNodeFocus)); } private void RestoreLastNodeFocus() { if(previousFocusedNode != null) treeList1.FocusedNode = previousFocusedNode; } } }