两种方式实现控件动态拖动效果比较

在WinForm上拖动控件有两种方式可以实现,方法一通过控件的MouseDown,MouseMove事件实现,可以看到控件随鼠标实时移动(参考http://blog.csdn.net/nj2011zy/article/details/73832610)。这种方法适用于无位置排列的容器内子控件的移动,如Panel容器,优点是可以实时看到控件位置随鼠标移动,清晰可显,一般用于控件在容器(无位置排列)内自由拖动,使用于场景的构建,相当于继承原控件,新建可移动的控件。

方法二通过DoDragDrop方法实现控件拖动效果(参考http://blog.csdn.net/nj2011zy/article/details/73943953)。这种方法适用于有位置排序的容器或者有子项的控件,如FlowLayoutPanel容器、TreeView、ListView、ListBox等控件。该方法不能看到子控件或子项随鼠标实时移动,只能实现最终的移动效果,但是可以从鼠标的形状知道拖动的效果(移动、复制、滚动、所有等)。需要设定容器的属性AllowDrop=true,方可实现拖动。此种方法不涉及继承,相当于开通了容器"可拖动"功能。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值