private void tvwFileList_DragDrop(object sender, DragEventArgs e) { Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y)); TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt); TreeNode SourceNode = (TreeNode)e.Data.GetData(typeof(TreeNode)); // Obtain Source media type MediaType SourceMediaType = DragDropGetMediaType(SourceNode); // Obtain Destination media type MediaType DestinationMediaType = DragDropGetMediaType(DestinationNode); // Perform drag and drop if valid media switch (DestinationMediaType) { case MediaType.OricTape: if (SourceMediaType.In(MediaType.TapeFile, MediaType.OricTape)) { CopyTapeFilesToTape(SourceNode, DestinationNode); } break; default: break; } if (mnodDestinationOverflown != null) { mnodDestinationOverflown.BackColor = tvwFileList.BackColor; mnodDestinationOverflown.ForeColor = tvwFileList.ForeColor; mnodDestinationOverflown = null; } }
private void tvwFileList_ItemDrag(object sender, ItemDragEventArgs e) { TreeNode selectedNode = (TreeNode)e.Item; tvwFileList.SelectedNode = selectedNode; MediaType SourceMediaType = DragDropGetMediaType(selectedNode); if (SourceMediaType.In(MediaType.OricTape, MediaType.TapeFile)) { DoDragDrop(e.Item, DragDropEffects.All); } }