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

2 回答 2

4

将 HideSelection 属性设置为 False

于 2012-05-03T11:31:20.580 回答
0

您可以尝试处理 DragOver 方法。或者看看微软的例子:MSDN

于 2016-04-12T03:26:43.350 回答