listView1 からドラッグして、どちらも ListView である
listLocal にドロップしようとして
います。クライアントとサーバー間のファイル転送アプリケーションであり、アプリケーションは小さなローカル ファイル エクスプローラーlistLocalとリモート ファイル エクスプローラーlistView1を表示します。
そのため、アイテムをlistView1からlistLocalにドロップすると、ポインターがアイテム [フォルダー] をポイントすると、それが強調表示されます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;
}