private void FavouritesTreeDragOver(object sender, DragEventArgs e) { if (!e.Data.GetDataPresent(typeof(TextureItem)) && !e.Data.GetDataPresent(typeof(List <TextureItem>))) { return; } var pt = FavouritesTree.PointToClient(new Point(e.X, e.Y)); var highlightedNode = FavouritesTree.GetNodeAt(pt); if (highlightedNode == null || !(highlightedNode.Tag is FavouriteTextureFolder)) { if (_highlightedNode != null) { _highlightedNode.BackColor = Color.Transparent; } _highlightedNode = null; e.Effect = DragDropEffects.None; return; } if (_highlightedNode != null) { _highlightedNode.BackColor = Color.Transparent; } _highlightedNode = highlightedNode; _highlightedNode.BackColor = Color.LightSkyBlue; e.Effect = DragDropEffects.Copy; }
private void FavouritesTreeDragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(TextureItem)) || e.Data.GetDataPresent(typeof(List <TextureItem>))) { var pt = FavouritesTree.PointToClient(new Point(e.X, e.Y)); var dest = FavouritesTree.GetNodeAt(pt); if (dest != null && dest.Tag is FavouriteTextureFolder) { var data = e.Data.GetDataPresent(typeof(TextureItem)) ? new List <TextureItem> { (TextureItem)e.Data.GetData(typeof(TextureItem)) } : (List <TextureItem>)e.Data.GetData(typeof(List <TextureItem>)); var folder = (FavouriteTextureFolder)dest.Tag; foreach (var ti in data) { if (!folder.Items.Contains(ti.Name, StringComparer.InvariantCultureIgnoreCase)) { folder.Items.Add(ti.Name); } } UpdateFavouritesList(); } } if (_highlightedNode != null) { _highlightedNode.BackColor = Color.Transparent; } _highlightedNode = null; }