【发布时间】:2012-05-09 19:15:28
【问题描述】:
我正在尝试从 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;
}
【问题讨论】:
-
将 HideSelection 属性设置为 False
-
@HansPassant 已解决。谢谢人
-
@HansPassant 您应该发布您的评论作为答案,让问题被标记为已回答!对吗?
标签: c# winforms listview highlight