想实现一个控件拖动排序的功能,想不通啊。。。

dapeng925 2009-03-11 09:56:30
在一个容器里,有n个panel控件,从上到下依次排列,要实现拖动一个panel拖动它的位置。比如原来12345,拖动3向后变成12435,这样的。拖动时显示该panel将要放置的位置(比如一条粗线)。再有就是拖动后怎么得到新的顺序(放到一个数组里)。谢谢。想了半天没有个头绪,n个panel闹得,呵呵。再加我也比较菜~
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dapeng925 2009-03-18
  • 打赏
  • 举报
回复
谢谢 csrwgs 啊,排序没问题了。就是拖动有点问题,将panel拖到label上的时候,不能触发label的mouseup,mousemove,drag系列。可是我试着把toolmenu拖上来就能触发,这是为什么?
等这个解决了我再把代码贴上来,请高手们帮我看看,能不能优化,感觉自己写的有点怪(尽管目的达到了)呵呵
dapeng925 2009-03-12
  • 打赏
  • 举报
回复
谢谢大家的思路,我写写看。说实话,链表这一块没怎么学,呵呵。努力
csrwgs 2009-03-11
  • 打赏
  • 举报
回复
(1)把顺序数字等放到一个链表就可以了,list,然后根据这个顺序,重新排所有的panel..
(2)如何移动PANEL?
MouseDown的时候设置1个FLAG,一个Point,

MouseMove的时候 如果有FLAG,就让PANEL根据参数随着鼠标移动

MouseUp的时候清除FLAG,同时查找PANEL所处的位置,更新链表
yagebu1983 2009-03-11
  • 打赏
  • 举报
回复
有点麻烦。。。
用WPF试试。。。
oyljerry 2009-03-11
  • 打赏
  • 举报
回复
把顺序数字等放到一个链表就可以了,list,然后根据这个顺序,重新排所有的panel....
the_pain 2009-03-11
  • 打赏
  • 举报
回复
up

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧