C# 拖放在C中不起作用#

C# 拖放在C中不起作用#,c#,.net,drag-and-drop,admin,C#,.net,Drag And Drop,Admin,我在C#中创建了一个拖放控件,允许人们将文件拖放到我的表单上。这是我遇到的问题,它在调试时运行良好;但是,在管理员模式下运行我的程序时,它不起作用。这有什么原因吗 这是我的密码: private void panel1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;

我在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";
}

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


有关更多详细信息,请参阅本文:

谢谢,我现在使用这个,似乎是一个更好的解决方案。@KieranCrown链接是404。