2015-03-31 32 views
-2

如何從winforms中的代碼調用DragDrop事件。從C#中的代碼調用拖放事件#

var ctrls = this.Owner.Controls.Find("mediaPlayer", true); 
ctrls[0].??DragDrop(x,y)?? 

在此先感謝。

+0

爲什麼不設置位置ctrls.Location =新點(X,Y); – Damith 2015-03-31 08:26:16

+0

阻止你做什麼?你面臨的問題是什麼? – 2015-03-31 08:27:50

+0

我需要刪除programmaticaly來控制DataFormats.FileDrop。控制不是我的,但它處理拖放操作。 – solowk 2015-03-31 09:03:25

回答

0
var ctrls = parentForm.Controls.Find("mediaPlayer", true); 
Type t = typeof(Panel); 
object[] p = new object[1]; 
p[0] = new DragEventArgs(new DataObject(DataFormats.FileDrop, new string[] {@"d:\test\test.avi"}), 0, 0,0, DragDropEffects.Copy, DragDropEffects.Copy); 
MethodInfo m = t.GetMethod("OnDragDrop", BindingFlags.NonPublic | BindingFlags.Instance); 
m.Invoke(ctrls[0], p); 

看到source