C#将一个控件拖动到另外一个控件上

(1)设置目标控件ListDragTarget.AllowDrag=true.表面目标控件ListDragTarget可以拖动(其实就是允许该ListDragTarget之外的项进入该控件可以拖动)。

(2)源控件ListDragSource选中某项并拖动,在本例中用到了MouseDown事件(选中某项),MouseMove事件(拖动)。实际上如果控件有ItemDrag事件的话,只需要在ItemDrag一个事件中完成选中和拖动(比如ListView控件就有ItemDrag事件)。在拖动事件中一般是MouseMove或者ItemDrag事件中调用源控件ListDragSource实例的DoDragDrop方法(实际上用目标控件ListDragTarget实例的DoDragDrop方法)。该方法用于传递源控件中的选中项,及拖动效果DragDropEffects,并触发DragDrop事件(这里触发所有DragDrop事件,不分是源控件的DragDrop事件还是目标控件的DragDrop事件)。

(3)注册目标控件ListDragTarget中两个事件DragEnter和DragDrop事件.DragEnter实现拖动的效果,比如 e.Effect = DragDropEffects.Move(这个一定要设置,不光是拖动效果,也涉及到DragDrop事件能否触发的问题,自己实验总结的,不太理解为什么。)。DragDrop实现接受从源控件ListDragSource拖动过来的数据,并将拖动过来的数据添加到该目标控件ListDragTarget中。

WinForm之控件拖动总结(原理篇) - 焦涛 - 博客园

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值