winform窗体中有个panel,动态加载了多个picturebox,现在要实现的效果是类似windows桌面一样的效果,拖动之后自动排序,拖到前面,当前位置以后的图标自动往后面挤, 拖动好做,已经实现了,可是这自动排序怎么做呢?想来想去没想到合适的方法,求高手指点,在线等答案,加Q279701886,请说明是博客园的
排序 ,不就是 坐标的移动吗?
记住 当前点。然后 把后面的picturebox 再排一次,除去你移动的这个picturebox。
@無限遐想: 当前点应该至少包括三个把?左上 左下 右上 ,然后把移动后的左上坐标与存储的坐标分别对比,可是如果有多个picturebox的时候不是要对比很多次吗?
@堕落为妖精: 其实 每一个 点的 坐标 是固定的。你移动到这里。只是换了一个位置。其他位置只需要依次移动位置就好了
@無限遐想: 不太理解,能给写个案例吗?
@堕落为妖精: 大小一样吗?
@無限遐想: 你可以建立一个 坐标数组。当你放到一个位置的时候,就对应于这个位置的坐标,然后 后面的图片再根据 坐标数组移动。
@無限遐想:我试着写写看,谢谢了
不要用Panel,试试用ListBox或者ListView,重新排序改变数组的排序再重新绑定一下.
怎么通过拖拽改变数组的排序呢?能详细一下不?
最好还是用panel了 ,和整体项目契合