如何从C#应用程序中显示Windows资源管理器上下文菜单?
我在我的应用程序中有一个文件列表,我想让人们右键单击一个项目并显示Windows资源管理器上下文菜单。 我假设我需要使用IContextMenu接口,但我不确定从哪里开始。
有一个非常好的教程(尽管在C ++中)关于在Raymond Chen的博客上以11个部分(按顺序)托管IContextMenu:
- 最初的尝试
- 显示上下文菜单
- 调用位置
- 关键背景
- 处理菜单消息
- 显示菜单帮助
- 调用默认动词
- 优化默认命令
- 添加自定义命令
- 复合扩展 – 基础工作
- 复合扩展 – 组合
我写了一个可以帮助你的图书馆。 您可以使用库提供的控件,或者如果您不想这样做,查看代码可能会给您一个答案。
您可以在以下url找到该图书馆: http : //gong-shell.sourceforge.net/
如果有帮助,请告诉我!
我发现了一篇很棒的Code Project文章,它很好地将所有内容封装到一个类中!
Explorer Shell上下文菜单
它就像下面的代码片段一样简单:
// 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(eX, eY)));
唯一令人讨厌的事情是,它需要一个FileInfo []数组或一个DirectoryInfo []数组,虽然它很容易稍微修改源代码,因此需要一个FileSystemInfo数组[]