我是一个传统的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;
}
}