如何在ListView中突出显示一个项目?

4
我正试图从listView1拖动并将其放置在listLocal上,它们都是ListView。这是一个客户端和服务器之间的文件传输应用程序,该应用程序显示小型本地文件浏览器listLocal和远程文件浏览器listView1。因此,当我将项目从listView1拖放到listLocal并且指针指向[Folder]项时,应突出显示item.Selected = true。
但它不起作用,我试图执行listLocal.Focus和listLocal.Select仍然不起作用,我该如何使其工作?
注意:当我使用item.BackColor = Color.RoyalBlue;时,它起作用,但它不会突出显示图标。
   private void listLocal_DragOver(object sender, DragEventArgs e)
   {
      if (!e.Data.GetDataPresent(typeof(ListViewItem))) return;
      Point p = listLocal.PointToClient(MousePosition);
      ListViewItem targetItem = listLocal.GetItemAt(p.X, p.Y);
      if (targetItem != null)               //if dropping on a target item
      {
        targetItem.Selected = true;
        if (targetItem.SubItems.Count > 1) e.Effect = DragDropEffects.None;//if IsFile
        else e.Effect = DragDropEffects.Copy;
        return;
      }
      foreach (ListViewItem item in listLocal.Items) item.Selected = false; //if dragging into current address
      e.Effect = DragDropEffects.Copy;
    }

1
将HideSelection属性设置为False。 - Hans Passant
3
@HansPassant,你应该将你的评论发布为答案,这样问题才能被标记为已回答!对吗? - Murhaf Sousli
2个回答

4

将HideSelection属性设置为False。


0
你可以尝试处理 DragOver 方法,或者查看微软的示例:MSDN

尽管这个链接可能回答了这个问题,但是将答案的关键部分放在帖子中是非常重要的。来自评论 - Raju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接