我想做一个这样的东西  就是把左边的  东西移到  右边去   但右边移回左边的时候  从左边移到右边什么位置      回来时候我还要他什么位置   比如  a在第一个   c在第三个  回到左边还是这样的位置  右边不用管他什么位置我用过索引了但是 不太行ListBox索引C

解决方案 »

  1.   

    应该先把它们的索引位置用stringsbuild记录下来,这个必须要索引,不然要还原到原来的位置不太现实吧。假如你同时移动了多个,导致索引大于当前位置,那只能在移动之前做判断了
      

  2.   

    按照你写的abcdefg就是一种排序,你从右边移过来排下序。假如内容不是你写的,那你每次向右边移动的时候把index保存着一起移动。从右边向左边移动的时候,每次移动完成后,按index拍序,记得刷新视图!
      

  3.   

    用一个 Dictionary 记录下左边的条目和对应的索引,这样就可以恢复了。
      

  4.   


    这样也不太好  比如我 第一次 抽走一个索引 为2的走了   然后listBox 肯定又会重新排序  于是我在抽走  重新排序后  索引为 2的  走了那 怎么办呢
      

  5.   

    记住数据加载Form_Load时的索引(在任何抽取动作之前)
      

  6.   

    Dictionary是键值对,用键排序,键是不变的。key
      

  7.   

    两边都绑定到Dictionary上就好了,key为index,value就是你Listbox上显示的值。移的时候整个KeyValuePair移走。从右边移回来一次就用Linq对重新从左边的dictionary里抽取一遍,按key排序,放到新的dictionary里重新赋给listbox.