Перетаскивание Listview не имеет визуального выделения на месте назначения - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в старом приложении Win Form. Он имеет вид списка со структурой файлов и папок. Я хочу разрешить пользователю перетаскивать файл / ы в папку. Когда я делаю это, я хочу найти пункт назначения (для этого я нахожу элемент в x и y), но также дать пользователю визуальное представление о том, что он перетаскивает его в папку (как в проводнике Windows).

1 Ответ

0 голосов
/ 31 августа 2018

в приватной пустоте myListView_DragOver (отправитель объекта, DragEventArgs e) Я настроил код в вашем комментарии @ HansPassant

var wPos = this.myListView.PointToClient(new Point(e.X, e.Y));
var targetItem = myListView.GetItemAt(wPos.X, wPos.Y);
if (targetItem != null)
{
      var targetNodeInfo = targetItem.Tag as WindowsExplorerModel;

      if (targetNodeInfo != null)               //if dropping on a target item
      {
           if (targetNodeInfo.isFile)               
                e.Effect = DragDropEffects.None;//if IsFile                    
           else
           {
                foreach (ListViewItem listItem in myListView.SelectedItems)
                        listItem.Selected = false;

                targetItem.Selected = true;
                e.Effect = DragDropEffects.Copy;
            }
            return;
      }                                
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...