private void NaviBoxEvent_DragOver(object sender, DragEventArgs e)
        {
            Point targetPoint = NaviBox.PointToClient(new Point(e.X, e.Y));

            int targetIndex = NaviBox.InsertionMark.NearestIndex(targetPoint);

            if (targetIndex > -1)
            {
                Rectangle itemBounds = NaviBox.GetItemRect(targetIndex);
                if (targetPoint.X > itemBounds.Left + (itemBounds.Width / 2))
                {
                    NaviBox.InsertionMark.AppearsAfterItem = true;
                }
                else
                {
                    NaviBox.InsertionMark.AppearsAfterItem = false;
                }
            }
            NaviBox.InsertionMark.Index = targetIndex;
            // setting target path to the location of the cursor
            Point        cp         = NaviBox.PointToClient(new Point(e.X, e.Y));
            ListViewItem dragToItem = NaviBox.GetItemAt(cp.X, cp.Y);

            try
            {
                if (NavigatorBoxControl.IsItADirectory(NavigatorBoxControl.SelectionPath))
                {
                    DirectoryInfo srcDirInfo = new DirectoryInfo(NavigatorBoxControl.SelectionPath);
                    DirectoryInfo tarDirInfo = new DirectoryInfo(dragToItem.ListView.Columns[0].Text);
                    NavigatorBoxControl.CopyTarget = tarDirInfo.FullName + dragToItem.Text + @"\" + srcDirInfo.Name;
                }
                else
                {
                    FileInfo srcFileInfo = new FileInfo(NavigatorBoxControl.SelectionPath);
                    FileInfo tarFileInfo = new FileInfo(dragToItem.ListView.Columns[0].Text);
                    NavigatorBoxControl.CopyTarget = tarFileInfo.FullName + dragToItem.Text + @"\" + srcFileInfo.Name;
                }
            }
            catch { }
        }