private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) 
 
     { 
 
          if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
 
               e.Effect = DragDropEffects.All; 
 
          else 
 
               e.Effect = DragDropEffects.None; 
 
     } 

解决方案 »

  1.   

    yarshray(saga jion) : 这个方法没有用呀,一点没有改变
      

  2.   

    你代码写错了吧!以下代码给你参考:
    private void treeView1_AfterCollapse(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
    e.Node.ImageIndex=0;
    e.Node.SelectedImageIndex=0;

    } private void treeView1_AfterExpand(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
    e.Node.ImageIndex= 1;
    e.Node.SelectedImageIndex=1;

    } private void treeView1_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e)
    {
    DoDragDrop(e.Item, DragDropEffects.Move);
    } private void treeView1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
    object data = e.Data.GetData(typeof(TreeNode));
    if(data!=null)
    {
    TreeNode dragNode = (TreeNode)data;
    if(dragNode.TreeView.Equals(treeView1))
    {
    e.Effect=DragDropEffects.Move;
    }
    else
    {
    e.Effect= DragDropEffects.None;
    }
    }
    else
    {
    e.Effect= DragDropEffects.None;
    }
    }
    private TreeNode FindNode(int x, int y)
    {
    Point p = treeView1.PointToClient(new Point(x,y));
    TreeNode topNode =treeView1.TopNode;
    while(topNode != null)
    {
    if(topNode.Bounds.Contains(p))
    {
    return topNode;
    }
    topNode = topNode.NextVisibleNode;
    }
    return null;
    } private void treeView1_DragOver(object sender, System.Windows.Forms.DragEventArgs e)
    {
    if(e.Effect == DragDropEffects.Move)
    {
    TreeNode overNode = FindNode(e.X, e.Y);
    if(overNode !=null && !overNode.Equals(oldNode))
    {
    if(oldNode!=null)
    {
    oldNode.BackColor = oldNodeBackColor;
    oldNode.ForeColor = oldNodeForeColor;
    }
    oldNode = overNode;
    oldNodeBackColor = overNode.BackColor;
    oldNodeForeColor = overNode.ForeColor;
    TreeNode moveNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
    if(overNode.Equals(moveNode))
    {
    overNode.BackColor = Color.Red;
    overNode.ForeColor = Color.White;
    }
    else
    {
    overNode.BackColor = Color.Green;
    overNode.ForeColor = Color.White;
    }
    }
    }
    } private void treeView1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
    oldNode.BackColor = oldNodeBackColor;
    oldNode.ForeColor = oldNodeForeColor;
    oldNode = null;
    if(e.Effect == DragDropEffects.Move)
    {
    TreeNode overNode = FindNode(e.X, e.Y);
    TreeNode moveNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
    if(overNode == moveNode)
    {
    MessageBox.Show(" i con`t move Node", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return ;
    }
    if(overNode == null)
    {
    if(moveNode.Parent != null)
    {
    if(moveNode.Parent.Nodes.Count ==1)
    {
    moveNode.Parent.ImageIndex = 2;
    moveNode.Parent.SelectedImageIndex = 2;
    }
    moveNode.Remove();
    treeView1.Nodes.Add(moveNode);
    }
    }
    else if(overNode.Parent == moveNode.Parent)
    {
    if(overNode.Nodes.Count !=0)
    {
    if(moveNode.Parent !=null)
    {
    if(moveNode.Nodes.Count == 1)
    {
    moveNode.Parent .ImageIndex = 2;
    moveNode.Parent.SelectedImageIndex = 2;
    }
    }
    moveNode.Remove();
    overNode.Nodes.Add(moveNode);
    overNode.Expand();
    overNode.ImageIndex =1;
    }
    }
    else if(overNode.Nodes.Count == 0)
    {
    if(moveNode.Parent != null)
    {
    if(moveNode.Parent.Nodes.Count == 1)
    {
    moveNode.Parent.ImageIndex = 2;
    moveNode.Parent.SelectedImageIndex = 2;
    }
    }
    moveNode.Remove();
    if(overNode.Parent != null)
    {
    overNode.Parent.Nodes.Add(moveNode);
    }
    else
    {
    treeView1.Nodes.Add(moveNode);
    }
    }
    else if(moveNode.Parent ==null || !moveNode.Parent.Equals(overNode))
    {
    if(moveNode.Parent != null)
    {
    if(moveNode.Parent.Nodes.Count == 1)
    {
    moveNode.Parent.ImageIndex = 2;
    moveNode.Parent.SelectedImageIndex = 2;
    }
    }
    moveNode.Remove();
    overNode.Nodes.Add(moveNode);
    overNode.Expand();
    overNode.ImageIndex = 1;
    }