2014-02-26 48 views
1

當我在其他問題中讀到時,大多數人都會問爲什麼它意外地發射,但對我而言,它永遠不會發射。爲什麼DragLeave事件在節點被拖出TreeView時沒有被觸發?

using System; 
using System.Windows.Forms; 

namespace TestDrag 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      treeView1.ItemDrag += treeView1_ItemDrag; 
      treeView1.DragLeave += treeView1_DragLeave; 

      groupBox1.AllowDrop = true; 
      groupBox1.DragEnter += groupBox1_DragEnter; 
      groupBox1.DragDrop += groupBox1_DragDrop; 

      treeView1.Nodes.Add("asd"); 
      treeView1.Nodes.Add("dsa"); 
     } 

     void groupBox1_DragDrop(object sender, DragEventArgs e) 
     { 
      throw new NotImplementedException(); 
     } 

     void groupBox1_DragEnter(object sender, DragEventArgs e) 
     { 
      e.Effect = DragDropEffects.Copy; 
     } 

     void treeView1_ItemDrag(object sender, ItemDragEventArgs e) 
     { 
      treeView1.DoDragDrop(e.Item, DragDropEffects.Copy); 
     } 

     void treeView1_DragLeave(object sender, EventArgs e) 
     { 
      MessageBox.Show(this, "This message never shows when node dragged out of treeView1", "This is bad", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 
} 

我想隱藏的TreeView一旦項目拖了出來,但這一事件不會發生> _ < 可能是什麼原因,以及如何解決或繞過呢?

+0

我讓'AllowDrop'爲'True'並進入。 – Georgi

+0

呵呵......從來沒有這些之間有任何關係。作爲答案,所以我可以接受它。 – Kosmos

回答

1

您必須使AllowDrop = True;

相關問題