Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#应用程序中显示Windows资源管理器上下文菜单?_C#_Contextmenu_Explorer - Fatal编程技术网

如何从C#应用程序中显示Windows资源管理器上下文菜单?

如何从C#应用程序中显示Windows资源管理器上下文菜单?,c#,contextmenu,explorer,C#,Contextmenu,Explorer,我的应用程序中有一个文件列表,我希望允许人们右键单击某个项目并显示Windows资源管理器上下文菜单。我假设我需要使用IContextMenu界面,但我不确定从何处开始。我已经编写了一个库,可能可以帮助您。您可以使用库提供的控件,或者如果不想这样做,查看代码可能会给出答案 您可以在以下位置找到该库: 请让我知道这是否有帮助 关于在Raymond Chen的博客上托管IContextMenu,有一个非常好的教程(尽管是C++),分11部分(按顺序): 我发现了一篇很棒的代码项

我的应用程序中有一个文件列表,我希望允许人们右键单击某个项目并显示Windows资源管理器上下文菜单。我假设我需要使用IContextMenu界面,但我不确定从何处开始。

我已经编写了一个库,可能可以帮助您。您可以使用库提供的控件,或者如果不想这样做,查看代码可能会给出答案

您可以在以下位置找到该库:


请让我知道这是否有帮助

关于在Raymond Chen的博客上托管IContextMenu,有一个非常好的教程(尽管是C++),分11部分(按顺序):


  • 我发现了一篇很棒的代码项目文章,它将所有内容都很好地封装到一个类中

    它与以下代码片段一样简单:

    // Sample code
    
    ShellContextMenu ctxMnu = new ShellContextMenu();
    FileInfo[] arrFI = new FileInfo[1];
    arrFI[0] = new FileInfo(this.treeMain.SelectedNode.Tag.ToString());
    ctxMnu.ShowContextMenu(arrFI, this.PointToScreen(new Point(e.X, e.Y)));
    

    唯一令人讨厌的是,它要么需要一个FileInfo[]数组,要么需要一个DirectoryInfo[]数组,尽管稍微修改源代码很容易,这样它就需要一个FileSystemInfo[]数组。

    这太完美了。不是在C#中,但它解释了如何做,这就是我所需要的。链接已经死了,但在新的博客上。该库大部分时间工作正常,但在某些情况下,由于代理发布太早,我似乎找不到位置,它会崩溃。此解决方案显然只适用于.NET 2.0:(