Невозможно перетащить из Проводника на ListView - PullRequest
0 голосов
/ 06 марта 2012

Я видел это везде и перепробовал все решения, и, похоже, я не получил то, что хотел.Я хочу иметь возможность перетаскивать файлы из проводника в ListView, а затем сортировать их с помощью перетаскивания.У меня есть этот простой код, который получает перетаскивание из проводника.

        this.messageView.AllowDrop = true;
        this.messageView.Location = new System.Drawing.Point(12, 52);
        this.messageView.Name = "messageGrid";
        this.messageView.Size = new System.Drawing.Size(121, 97);
        this.messageView.TabIndex = 3;
        this.messageView.UseCompatibleStateImageBehavior = false;
        this.messageView.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
        this.messageView.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);

и обработчики

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {

        if (e.Data.GetDataPresent("FileGroupDescriptor"))
            {
            e.Effect = DragDropEffects.All;
            }
        }

    private void Form1_DragDrop(object sender, DragEventArgs e)
        {
        messageView.Items.Add(e.Data.ToString());
        }

Это странно, потому что я меняю messageView на RichTextBox Iесть на моей форме, это работает просто отлично.Есть ли дополнительные шаги, которые я должен сделать?Когда я пытаюсь перейти на ListView, я получаю круг с линией через него из Explorer.Любая помощь будет оценена.Спасибо.

1 Ответ

1 голос
/ 06 марта 2012

События DragEnter и DragDrop должны обрабатываться в ListView, а не в форме.О перетаскивании: я не помню название статьи, но нашел хороший пример в codeproject.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...