找回密码
 立即注册

QQ登录

只需一步,快速开始

ghostlyt

初级会员

18

主题

76

帖子

214

积分

初级会员

积分
214

活字格认证微信认证勋章

ghostlyt
初级会员   /  发表于:2016-7-22 11:45  /   查看:4603  /  回复:5
为了自定义表格的拖拽操作,
在MouseDown事件中调用了DoDragDrop方法。

这样自定义拖拽可以实现,但是FlexGrid无法完成双击操作了,
相关的事件也不能触发(BeforeDoubleClick, DoubleClick, MouseDoubleClick)

请问在不影响双击的情况下,该怎么实现自定义拖拽?

5 个回复

倒序浏览
unity
社区贡献组   /  发表于:2016-7-22 14:02:27
沙发
应该在MouseMove事件里面调用DoDragDrop。
实现方式:
1. 在MouseDown 时做好标记,并记录鼠标位置。
2. 在MoveMove里面判断是否存在标记。并比较鼠标移动量,当移动幅度达到一定量时认为触发拖曳操作。
这是调用DoDragDrop进行处理。

需要移动量是为了避免鼠标点击时的误判,一般人操作鼠标进行点击时可能会有轻微移动。

评分

参与人数 1金币 +500 收起 理由
Alice + 500

查看全部评分

回复 使用道具 举报
ghostlyt
初级会员   /  发表于:2016-7-22 16:06:51
板凳
unity 发表于 2016-7-22 14:02
应该在MouseMove事件里面调用DoDragDrop。
实现方式:
1. 在MouseDown 时做好标记,并记录鼠标位置。

这么做确实可以。
之前是考虑到MouseMove触发次数太多,有点担心在这里调用DoDragDrop会不会产生什么问题。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-7-22 18:03:27
地板
ghostlyt 发表于 2016-7-22 16:06
这么做确实可以。
之前是考虑到MouseMove触发次数太多,有点担心在这里调用DoDragDrop会不会产生什么问 ...

你可以试试2楼的方案
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
ghostlyt
初级会员   /  发表于:2016-7-25 13:57:52
5#
Alice 发表于 2016-7-22 18:03
你可以试试2楼的方案

是的,最终采用了MouseMove事件,目前还没有发现什么不良影响。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-25 17:19:22
6#
感谢二楼。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部