首页 > 解决方案 > 如何在“DragEnter”事件中比较类型?

问题描述

我想根据我拖动的类型拖动UserControlPanel执行一些特定的操作UserControl。就我而言,它可以是UserControl我可以拖动到面板的 2 种类型。例如,当我拖动时,首先UserControl,我必须做一个动作。如果我拖第二个,应该做 B 动作。我MouseDownUserControl. 但我不知道如何DragEnterPanel. 我应该在那里比较什么?我试图写这样的东西:if (e.Data.GetDataPresent(typeof(MyType))),但e.DataSystem.Windows.Forms.DataObject类型,而不是MyType.

标签: c#drag-and-drop

解决方案


这可能是您要找的吗?有了这个,你可以得到正在被拖动的文件的信息。

 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);
            }

推荐阅读