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

                }


            }
  • 相关阅读:
    bzoj 3876: [Ahoi2014&Jsoi2014]支线剧情【有上下界有源汇最小费用最大流】
    bzoj 2055: 80人环游世界【有上下界有源汇最小费用最大流】
    bzoj 2406: 矩阵【二分+有源汇上下界可行流】
    bzoj 4873: [Shoi2017]寿司餐厅【最大权闭合子图】
    bzoj 2007: [Noi2010]海拔【最小割+dijskstra】
    bzoj 2039: [2009国家集训队]employ人员雇佣【最小割】
    bzoj 3996: [TJOI2015]线性代数【最小割】
    bzoj 3158: 千钧一发【最小割】
    bzoj 2597: [Wc2007]剪刀石头布【最小费用最大流】
    bzoj 5120: [2017国家集训队测试]无限之环【最小费用最大流】
  • 原文地址:https://www.cnblogs.com/lmcblog/p/2594989.html
Copyright © 2011-2022 走看看