zoukankan      html  css  js  c++  java
  • winForm ListView控件内部拖动排序

     
            private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
            {
                listView1.DoDragDrop(listView1.SelectedItems, DragDropEffects.Move);
            }

            private void listView1_DragDrop(object sender, DragEventArgs e)
            {
                //判断是否选择拖放的项,

                if (listView1.SelectedItems.Count == 0)
                {
                    return;
                }

                //定义项的坐标点
                Point cp = listView1.PointToClient(new Point(e.X, e.Y));//
                ListViewItem dragToItem = listView1.GetItemAt(cp.X, cp.Y);

                if (dragToItem == null)
                {
                    return;
                }

                int dragIndex = dragToItem.Index;
                ListViewItem[] sel = new ListViewItem[listView1.SelectedItems.Count];

                for (int i = 0; i <= listView1.SelectedItems.Count - 1; i++)
                {
                    sel = listView1.SelectedItems;
                }

                for (int i = 0; i < sel.GetLength(0); i++)
                {
                    ListViewItem dragItem = sel;

                    int itemIndex = dragIndex;

                    if (itemIndex == dragItem.Index)
                    {
                        return;
                    }

                    if (dragItem.Index < itemIndex)
                        itemIndex++;
                    else
                        itemIndex = dragIndex + i;

                    ListViewItem insertItem = (ListViewItem)dragItem.Clone();

                    listView1.Items.Insert(itemIndex, insertItem);

                    listView1.Items.Remove(dragItem);
                }
            }
            private void listView1_DragEnter(object sender, DragEventArgs e)
            {
                for (int i = 0; i <= e.Data.GetFormats().Length - 1; i++)
                {
                    if (e.Data.GetFormats().Equals("System.Windows.Forms.ListView+SelectedListViewItemCollection"))
                    {
                        e.Effect = DragDropEffects.Move;
                    }

                }


            }
  • 相关阅读:
    Liunx运维(七)-用户管理及用户信息查询命令
    容器网络原理分析:veth 和 network namespace
    浅谈 Docker 网络:单节点多容器
    浅谈 Docker 网络:单节点单容器
    图图图
    LinkPrediction可能有用的数据集
    2021年展望
    2020年总结
    毕业设计:基于web的外卖订餐系统的设计与实现
    机器学习和数据分析在实体识别方面的简单应用
  • 原文地址:https://www.cnblogs.com/lmcblog/p/2594989.html
Copyright © 2011-2022 走看看