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;
                    }

                }


            }
  • 相关阅读:
    java中给集合快速取值最大值和最小值
    Mybatis.xml文件中大于小于等于
    Validate表单验证
    更新了svn 后,某个文件多了几个副本如:xxx.r1 xxx.r3 xxx.mine等,正常文件名xxx
    Oracle监听出现的问题总结,以及解决办法
    oracle三个网络配置文件(listener.ora、tnsname.ora、sqlnet.ora)的作用
    Lucene提供的条件判断查询
    Lucene 单域多条件查询
    lucene自定义过滤器
    luke使用
  • 原文地址:https://www.cnblogs.com/lmcblog/p/2594989.html
Copyright © 2011-2022 走看看