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

                }


            }
  • 相关阅读:
    sqlplus -S选项说明
    oracle中常见set指令
    nohup详解
    centos64位编译32位程序
    【PHP系列】框架的抉择
    【PHP系列】PHP推荐标准之PSR-4,自动加载器策略
    【PHP系列】PHP推荐标准之PSR-3,日志记录器接口
    【PHP系列】PHP推荐标准之PSR-1,PSR-2
    【项目管理】管理工具的抉择 --- 持续更新中
    【CNMP系列】CentOS7.0下安装FTP服务
  • 原文地址:https://www.cnblogs.com/lmcblog/p/2594989.html
Copyright © 2011-2022 走看看