Вопрос:

Visual Studio не регистрирует функцию «DragDrop», перемещающую строку из одного списка в другой

c# forms visual-studio drag-and-drop

22 просмотра

1 ответ

8 Репутация автора

Как видно из названия, у меня есть форма, которая заполняет три списка из загруженных электронных таблиц. Каждый элемент строки преобразуется в свою собственную строку, и пользователь должен иметь возможность захватить строку и перетащить ее из одного списка в другой.

В то время как MouseDown регистрируется для захвата строки, DragLeave регистрируется для удаления строки из исходного списка, а DragEnter регистрируется для удаления строки в новом списке, я не могу заставить DragDrop работать. Он уже настроен для списка примерно так:

this.lstCKWMissingJobs.DragEnter += new System.Windows.Forms.DragEventHandler(this.lstCKWMissingJobs_DragEnter);
this.lstCKWMissingJobs.DragDrop += new System.Windows.Forms.DragEventHandler(this.lstCKWMissingJobs_DragDrop);
this.lstCKWMissingJobs.DragLeave += new System.EventHandler(this.lstCKWMissingJobs_DragLeave);
this.lstCKWMissingJobs.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lstCKWMissingJobs_MouseDown);
Автор: Brandon Smith Источник Размещён: 08.11.2017 11:31

Ответы (1)


0 плюса

134 Репутация автора

Решение

У меня была похожая проблема с функциями перетаскивания. Если выполняется операция перетаскивания, если вы не назначаете эффекту другое значение, по умолчанию оно будет равным None .

Чтобы изменить эффект, вы можете назначить его в обработчике событий DragEnter.

private void yourDragEnterHandler(object sender, DragEventArgs e) 
{
    e.Effect = DragDropEffects.Move;
}
Автор: SniperLegacy Размещён: 09.11.2017 12:43
Вопросы из категории :
32x32