Перетащите список просмотра C # - PullRequest
0 голосов
/ 22 августа 2011

Привет, как мне включить обработчик событий перетаскивания, когда я дважды щелкаю по списку?

Это то, что я получаю после двойного щелчка по списку

private void listView1(object sender, EventArgs e)

Тем не менее, я хочу, чтобы это было

private void listView(object sender,DragEventArgs e)

Как мне это сделать ..?

Я пробовал много способов, таких как:

  private void Form_Load(object sender, EventArgs e)
  {
      // Enable drag and drop for this form
      // (this can also be applied to any controls)
      this.AllowDrop = true;

      // Add event handlers for the drag & drop functionality
      this.DragEnter += new DragEventHandler(Form_DragEnter);
      this.DragDrop += new DragEventHandler(Form_DragDrop);
 }

1 Ответ

6 голосов
/ 23 августа 2011

Вам необходимо реализовать событие DragEnter и установить свойство Effect объекта DragEventArgs. Событие DragEnter - это то, что позволяет помещать вещи в элемент управления. После этого событие DragDrop будет срабатывать при отпускании кнопки мыши.

Вот версия, которая позволяет объектам быть сброшенными в ListView:

    private void Form1_Load(object sender, EventArgs e)
    {
        listView1.AllowDrop = true;
        listView1.DragDrop += new DragEventHandler(listView1_DragDrop);
        listView1.DragEnter += new DragEventHandler(listView1_DragEnter);
    }

    void listView1_DragEnter(object sender, DragEventArgs e)
    {
        e.Effect = DragDropEffects.Copy;
    }

    void listView1_DragDrop(object sender, DragEventArgs e)
    {
        listView1.Items.Add(e.Data.ToString());
    }

Без сомнения, ваш пример кода был взят из: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.allowdrop(v=vs.71).aspx

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