4

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