双击即可将项目从一个列表框复制到另一个列表框。双击事件未激发。Winform C#

双击即可将项目从一个列表框复制到另一个列表框。双击事件未激发。Winform C#,c#,winforms,double-click,C#,Winforms,Double Click,我是Winform开发的新手。我有两个列表框。当用户双击第一个列表框中的项目时,我希望将其复制到第二个列表框。问题是我的双击方法从未被解雇。 这是我的密码: //here I register the event this.fieldsArea.MouseDoubleClick += new MouseEventHandler(fieldsArea_MouseDoubleClick); 下面是双击方法: private void fieldsArea_MouseDoubleClick(

我是Winform开发的新手。我有两个列表框。当用户双击第一个列表框中的项目时,我希望将其复制到第二个列表框。问题是我的双击方法从未被解雇。 这是我的密码:

//here I register the event
this.fieldsArea.MouseDoubleClick += new MouseEventHandler(fieldsArea_MouseDoubleClick);
下面是双击方法:

    private void fieldsArea_MouseDoubleClick(object sender, MouseEventArgs e)
    {
        MessageBox.Show("from method");
        int index = fieldsArea.IndexFromPoint(e.Location);
        string s = fieldsArea.Items[index].ToString();

        selectedFieldsArea.Items.Add(s);
    }
所以我想把fieldsArea中的元素复制到selectedFieldsArea。。。messagebox从不显示,在调试中,我看到我从未输入此方法。。。 我是不是遗漏了什么

ps:我已经实现了拖放,效果很好

更新:问题源于同样正在实施的MouseDown事件。这是我的鼠标下移活动

private void fieldsArea_MouseDown(object sender, MouseEventArgs e)
    {
        if (fieldsArea.Items.Count == 0)
            return;
        int index = fieldsArea.IndexFromPoint(e.Location);
        string s = fieldsArea.Items[index].ToString();
        DragDropEffects dde1 = DoDragDrop(s,
            DragDropEffects.All);
    }

确保未注册其他鼠标事件,如
MouseClick
MouseDown
事件,这可能会干扰
MouseDoubleclick
事件

更新

MouseDown
事件处理程序中添加以下代码,您可以先检查它是否是双击

if(e.Clicks>1)
{
   int index = fieldsArea.IndexFromPoint(e.Location);
   string s = fieldsArea.Items[index].ToString();
   selectedFieldsArea.Items.Add(s); 
}
这是您的新处理程序:

private void fieldsArea_MouseDown(object sender, MouseEventArgs e)
{
  if (fieldsArea.Items.Count == 0)
            return;
  int index = fieldsArea.IndexFromPoint(e.Location);
  string s = fieldsArea.Items[index].ToString();

  if(e.Clicks>1)
  {          
       selectedFieldsArea.Items.Add(s); 
  }
  else
  {
        DragDropEffects dde1 = DoDragDrop(s,
        DragDropEffects.All);
  }
}
ps:我已经实现了拖放,效果很好

这意味着您可能已注册了一个
MouseDown
事件,该事件会干扰
MouseDoubleclick


仅出于测试目的,尝试删除拖放实现(注销
MouseDown
事件),然后
MouseDoubleclick
应该可以工作

我相信您可能有“MouseClick/MouseDown”事件或“SelectedIndexChanged”事件,这些事件会抵抗“MouseDoubleclick”事件的攻击,因此您需要正确处理它们。谢谢

我的拖放功能。。。不能同时进行拖放和双击吗?ps:我刚刚注释了我的mousedown,它解决了这个问题…@nche,这是可能的,只需发布你的mousedown事件,我们就可以查看你。我刚刚将它添加到我所做的问题中,它起了作用。所以我想我会更新我的问题,询问如何实现这两个。哦,我在发布之前没有得到更新,所以请放松,谢谢你的时间。