我在我的应用程序中有一个文件列表,我想允许人们右键单击项目并显示Windows Explorer上下文菜单。我假设我需要使用IContextMenu接口,但我不确定从哪里开始。
我写了一个库,可能可以帮助你。你可以使用库提供的控件,或者如果你不想那么做,查看代码可能会给你一个答案。
你可以在这里找到该库:http://gong-shell.sourceforge.net/
请告诉我这是否有帮助!
我发现了一篇非常好的Code Project文章,将所有内容都很好地封装到一个类中!
只需要以下代码片段即可:
// 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[]数组。
ShellHelper.HiWord
和ShellHelper.LoWord
更改为ulong
,但除此之外,在.NET 4.6.1上它可以直接使用。 - test