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

Jon*_*ury 14 c# explorer contextmenu

我在我的应用程序中有一个文件列表,我想让人们右键单击一个项目并显示Windows资源管理器上下文菜单.我假设我需要使用IContextMenu接口,但我不确定从哪里开始.

Gro*_*kys 11

我写了一个可以帮助你的图书馆.您可以使用库提供的控件,或者如果您不想这样做,查看代码可能会给您一个答案.

您可以在以下网址找到该图书馆:http://gong-shell.sourceforge.net/

如果有帮助,请告诉我!


Dav*_*ike 6

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

资源管理器外壳上下文菜单

就像下面的代码片段一样简单:

// 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)));
Run Code Online (Sandbox Code Playgroud)

唯一令人厌烦的是,它需要一个 FileInfo[] 数组或一个 DirectoryInfo[] 数组,尽管很容易稍微修改源代码,以便它需要一个 FileSystemInfo[] 数组