zoukankan      html  css  js  c++  java
  • C# 的 ListView 中 多个 Items 的 批量移动方法

    C# 把 DragDrop 实现的很全面。

    一个 ListView,当其 AllowDrop = true 后,就会支持 DragDrop 了。

    可以把外部的 东西 拖进 ListView ,也可以支持 ListView 中,Item 之间的互拖(比如用来改变Item之间的顺序)。

    若要支持一批的 Items (如选中的一批)移到某个 Item 之后要怎么做呢?

    诀窍就在于 ItemDrag 这个实现中。

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

    如上代码,如果是把 Item A 拖到 Item B上,就用上面注释掉的那句。如果是选中的一批,就用下面那句。

     DoDragDrop 的第一个参数,其实就会被放到 其它 DragXXXXX 实现方法的参数 DragEventArgs 的 Data 中。

    对应的,需要在 其它几个 DragOver,DragDrop,DragEnter 方法实现中,对输入的数据类型做一下判断,分类处理。大至如下:

    if (e.Data.GetDataPresent(DataFormats.FileDrop)) //拖动的是文件列表
    {
    }
    else if (e.Data.GetDataPresent(typeof(ListView.SelectedListViewItemCollection)))  //拖动的是选中的 Items
    {
    }
    else if (e.Data.GetDataPresent(typeof(ListViewItem)))  //拖动的是某个 Item 
    {
    }
    else //拖入的是其它未知的东西
    {
    }
  • 相关阅读:
    【转】 测试人员的职业规划 --整理标注
    关于数据准备
    功能点算法及在软件测试中的应用
    MySQL常用命令大全
    Python学习笔记
    python 学习笔记 if语句
    一个男人关心的东西 决定了他的层次
    Oracle 计算两个时间的差值
    javascript对下拉列表框(select)的操作
    java需要掌握内容、核心不断更新中
  • 原文地址:https://www.cnblogs.com/pencilstart/p/13715399.html
Copyright © 2011-2022 走看看