列表视图拖放在目标上没有可视高亮显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表视图拖放在目标上没有可视高亮显示相关的知识,希望对你有一定的参考价值。

我是一个传统的win表单应用程序的新手。它有一个包含文件和文件夹结构的列表视图。我想允许用户将文件拖到文件夹中。当我这样做时,我想找到目的地(为此我在x和y找到项目),但也给用户一个可视化的表示,他们将它放在一个文件夹上(如在Windows资源管理器中)。

答案

私有void myListView_DragOver(对象发送者,DragEventArgs e)我在你的评论@HansPassant中调整了代码

var wPos = this.myListView.PointToClient(new Point(e.X, e.Y));
var targetItem = myListView.GetItemAt(wPos.X, wPos.Y);
if (targetItem != null)
{
      var targetNodeInfo = targetItem.Tag as WindowsExplorerModel;

      if (targetNodeInfo != null)               //if dropping on a target item
      {
           if (targetNodeInfo.isFile)               
                e.Effect = DragDropEffects.None;//if IsFile                    
           else
           {
                foreach (ListViewItem listItem in myListView.SelectedItems)
                        listItem.Selected = false;

                targetItem.Selected = true;
                e.Effect = DragDropEffects.Copy;
            }
            return;
      }                                
}

以上是关于列表视图拖放在目标上没有可视高亮显示的主要内容,如果未能解决你的问题,请参考以下文章

如何将列表视图放在片段中

如何在片段类的列表视图中显示 SQLite 数据库?

如何在滚动列表视图上显示/隐藏底部导航视图?

在两个片段之间拖放?

如何将列表视图中的数据从一个片段发送到另一个片段

文件拖放在列表框上不起作用