C#区分拖放和鼠标单击

时间:2015-09-03 19:45:59

标签: c# events triggers cursor

我有一个允许删除的表单,我还需要捕获click事件。

这里棘手的部分是,当用户在表单上拖放对象时,MouseClickEvent也会被触发 - 因为他还点击了鼠标来释放掉落。

我如何在单独的事件触发器中处理这些事件的每一个?

提前致谢!

这是一个简短且更逻辑的问题,所以我没有看到在这里放置代码的真正原因..

谢谢!

2 个答案:

答案 0 :(得分:0)

添加全局布尔值,例如:

private bool isDragAndDrop;

加载表单时将其设置为false。当触发dragAndDrop事件时,您应该设置isDragAndDrop = true

当Click事件被触发时,你检查if(!isDragAndDrop)这将根据isDragAndDrop -variable的值执行或不执行click事件中的代码。

在离开点击事件之前,您需要设置isDragAndDrop = false

答案 1 :(得分:0)

我在此link

上找到了此解决方案
    private void MyMouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left && e.Clicks == 1)
        {
            Control source = (Control)sender;
            source.DoDragDrop(new MyWrapper(source), DragDropEffects.Move);
        }
    }
Bill Rawlinson撰写的文章 - 2007年4月18日