拖放在 C# 中不起作用

Posted

技术标签:

【中文标题】拖放在 C# 中不起作用【英文标题】:Drag and drop not working in C# 【发布时间】:2014-03-06 06:31:06 【问题描述】:

我在 C# 中创建了一个拖放控件,以允许人们将文件拖放到我的表单上。这是我遇到的问题,它在调试时工作正常;但是,在管理员模式下运行我的程序时,它不起作用。这有什么原因吗?

这是我的代码:

private void panel1_DragEnter(object sender, DragEventArgs e)

    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
        e.Effect = DragDropEffects.Copy;
    else
        e.Effect = DragDropEffects.None;


string startDir;

private void panel1_DragDrop(object sender, DragEventArgs e)

    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
    dropZoneLabel.Text = "Adding files; please wait...";
    foreach (string file in files)
    
        bool isFolder = File.GetAttributes(file).HasFlag(FileAttributes.Directory);
        if (isFolder)
        
            //Scan the folder for all files
            DirectoryOperations searchFolders = new DirectoryOperations();
            DirectoryInfo di = new DirectoryInfo(file);
            foreach (FileInfo dropfile in searchFolders.FullDirList(di, "*"))
            
                listBox1.Items.Add(dropfile.Name);
            
            startDir = di.FullName;
        
        else
        
            //It's a file so add it as normal
            listBox1.Items.Add(file);
        
    
    dropZoneLabel.Text = "Drop files or folders here";

【问题讨论】:

【参考方案1】:

由于用户界面特权隔离,从 Windows Vista 开始,您无法从以较低完整性级别运行的应用程序拖放到以较高完整性级别运行的应用程序。

更多详情请看这篇文章:Why Doesn’t Drag-and-Drop work when my Application is Running Elevated?

【讨论】:

谢谢,我现在用这个blogs.msdn.com/b/msdnforum/archive/2010/03/30/…,似乎是一个更好的解决方案。 @KieranCrown 链接为 404。

以上是关于拖放在 C# 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥拖放在 Selenium Webdriver 中不起作用?

拖放在 Xcode 中不起作用

拖放在Firefox中不起作用[重复]

使用 Fabric 拖放在 Angular 中不起作用

拖放在 DataGrid (WPF) 中不起作用

拖放到文件输入在 IE11 中不起作用