如何实现同一控件的单击和拖动

本文关键字:控件 单击 拖动 何实现 实现 | 更新日期: 2023-09-27 18:07:10

我有一个控件,我希望用户可以选择单击它或拖动它。像windows资源管理器中的文件。

我知道如何拖动。我不知道一个简单的方法来让点击"开火",因为开始在鼠标向下拖动会阻止它。

是否有简单的方法来做到这一点?

谢谢。

如何实现同一控件的单击和拖动

我建议您实现某种类型的可见拖拽句柄,以允许他们抓取和移动控件。如果鼠标停留在控件上超过200毫秒或者类似的情况

你应该搜索关于如何拖动和移动控件的示例,我实际上很久以前(大约11年前)在Delphi中做过,它都是关于鼠标坐标和在mouseDown和mouseUp上设置的标志。

我在这里找到了一些东西:http://www.codeproject.com/KB/dialog/MoveYourControls.aspx可能是。net解决方案的灵感来源

我从来没有这样做过,但是你可以…

对于单击,当触发mousedown事件时,获取控件的当前位置。然后在mouseup时,检查当前位置是否等于mousedown时的位置。如果它们相等(或接近于给意外移动一些容忍度),那么它的目的是点击。如果差异很大,那就是拖动,你可以做任何你想做的