日期:2014-05-19  浏览次数:21211 次

C#中使用DragDrop、DragEnter、DragLeave、DragOver等事件時沒有執行,請問原因是什麼?
C#中使用DragDrop、DragEnter、DragLeave、DragOver等事件時沒有執行,請問原因是什麼?

先設置ListDragTarget.AllowDrop=true;
private   void   ListDragTarget_DragDrop(object   sender,   System.Windows.Forms.DragEventArgs   e)
{
MessageBox.Show( "Drop ");
//e.Effect
if   (e.Data.GetDataPresent(typeof(System.String)))  
{

Object   item   =   (object)e.Data.GetData(typeof(System.String));

//   Perform   drag   and   drop,   depending   upon   the   effect.
if   (e.Effect   ==   DragDropEffects.Copy   ||
e.Effect   ==   DragDropEffects.Move)  
{
               
//   Insert   the   item.
if   (indexOfItemUnderMouseToDrop   !=   ListBox.NoMatches)
ListDragTarget.Items.Insert(indexOfItemUnderMouseToDrop,   item);
else
ListDragTarget.Items.Add(item);
                       
}
}
//   Reset   the   label   text.
DropLocationLabel.Text   =   "None ";

}

------解决方案--------------------
首先要有 MouseMove 事件啊
才谈得上 Drag
------解决方案--------------------
补充一下 首先是 MouseDown 确定拖动的东西
然后 MouseMove 里执行 DoDragDrop 来传递数据