Как сравнить тип в событии "DragEnter"? - PullRequest
0 голосов
/ 08 января 2020

Я хочу перетащить UserControl в Panel и выполнить определенное действие c в соответствии с типом UserControl, который я перетащил. В моем случае это может быть 2 типа UserControl, которые я могу перетащить на панель. И когда я перетаскиваю, например, сначала UserControl, я должен сделать действие. Если я тащу 2-ой, B действие должно быть сделано. Я реализовал MouseDown событие для UserControl. Но я не знаю, как реализовать DragEnter событие для Panel. Что я должен сравнить там? Я пытался написать что-то вроде этого: if (e.Data.GetDataPresent(typeof(MyType))), но e.Data имеет тип System.Windows.Forms.DataObject, а не MyType.

1 Ответ

0 голосов
/ 08 января 2020

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

 void MainForm_DragEnter(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
                string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
                foreach (string file in files) Console.WriteLine(file);
            }
...