C#ListView DragDrop事件方法每次拖放执行两次

C#ListView DragDrop事件方法每次拖放执行两次,c#,listview,events,drag-and-drop,C#,Listview,Events,Drag And Drop,该方法一行执行两次,没有明显的理由这样做。 它发生在VS2010 Express(4.0)和VS2008(3.5)中 我遵循的是Microsoft示例,没有注意到GUI.Designer.cs(自动,由IDE提供)和GUI.cs(手动,源于示例)中的声明是多余的 === GUI.cs === public GUI() { InitializeComponent(); this.lvwFiles.DragDrop += new System.Windows.Forms.DragEv

该方法一行执行两次,没有明显的理由这样做。 它发生在VS2010 Express(4.0)和VS2008(3.5)中


我遵循的是Microsoft示例,没有注意到GUI.Designer.cs(自动,由IDE提供)和GUI.cs(手动,源于示例)中的声明是多余的

=== GUI.cs ===
public GUI()
{
    InitializeComponent();
    this.lvwFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragDrop);
    this.lvwFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragEnter);
}

=== GUI.Designer.cs ===
// 
// lvwFiles
//
... 
this.lvwFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragDrop);
this.lvwFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragEnter);

您确定
InitializeComponent()
没有安装dragdrop处理程序吗?请重复上面J.Knoler的评论:打开Designer.cs文件,检查是否存在其他DragEnter和dragdrop处理程序。
=== GUI.cs ===
public GUI()
{
    InitializeComponent();
    this.lvwFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragDrop);
    this.lvwFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragEnter);
}

=== GUI.Designer.cs ===
// 
// lvwFiles
//
... 
this.lvwFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragDrop);
this.lvwFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragEnter);