c# - 如何在“DragEnter”事件中比较类型?
问题描述
我想根据我拖动的类型拖动UserControl
并Panel
执行一些特定的操作UserControl
。就我而言,它可以是UserControl
我可以拖动到面板的 2 种类型。例如,当我拖动时,首先UserControl
,我必须做一个动作。如果我拖第二个,应该做 B 动作。我MouseDown
为UserControl
. 但我不知道如何DragEnter
为Panel
. 我应该在那里比较什么?我试图写这样的东西:if (e.Data.GetDataPresent(typeof(MyType)))
,但e.Data
有System.Windows.Forms.DataObject
类型,而不是MyType
.
解决方案
这可能是您要找的吗?有了这个,你可以得到正在被拖动的文件的信息。
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);
}
推荐阅读
- mysql - 更新 MySQL 用户密码的安全方法
- firebase - 是否可以增加 Firebase 远程配置配额限制?
- javascript - 最新创建的 GitHub 文件的名称
- javascript - JS 函数正在执行两次。2 记录是从 postinstallment 函数生成的
- java - 优先级队列中二元运算符“-”的错误操作数类型
- javascript - 从api中提取信息
- html - 从 innerHTML 获取 href
- javascript - 指针事件不会通过 javascipt 切换?
- javascript - 如何无限淡入淡出线性渐变背景图片和文字
- c# - 使用 Ef Core 选择分层数据中的特定列