我正在尝试使用listview实现C#拖放行重新排序,然后使用当前行的顺序更新SQL数据库。我在互联网上遇到了一些代码片段(来自这个网站的一个实现了“var”类),但似乎没有一个能满足我的需求。我不需要帮助更新数据库,因为我很清楚如何执行此操作,但似乎无法使行重新排序正常工作,任何输入都将不胜感激。

-谢谢

最佳答案

  • 确保 AllowDragDrop 设置为 true
  • 至少为这 3 个事件实现处理程序
    private void myList_ItemDrag(object sender, ItemDragEventArgs e)
        {
            DoDragDrop(e.Item, DragDropEffects.Link);
        }
    
        private void myList_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Link;
        }
    
        private void myList_DragDrop(object sender, DragEventArgs e)
        {
            // do whatever you need to reorder the list.
        }
    

    获取您拖入的行的索引可能类似于:
    Point cp = myList.PointToClient(new Point(e.X, e.Y));
    ListViewItem dragToItem = myList.GetItemAt(cp.X, cp.Y);
    int dropIndex = dragToItem.Index;
    
  • 关于C# Listview 拖放行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3334987/

    10-12 13:17