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 来传递数据