繁体   English   中英

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

[英]How do you show the Windows Explorer context menu from a C# application?

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

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

您可以在以下位置找到该库:http: //gong-shell.sourceforge.net/

如果这有帮助,请告诉我!

在 Raymond Chen 的博客上有一个非常好的教程(虽然是 C++ 语言),分为 11 个部分(按顺序):

  1. 初步尝试
  2. 显示上下文菜单
  3. 调用位置
  4. 关键上下文
  5. 处理菜单消息
  6. 显示菜单帮助
  7. 调用默认动词
  8. 优化默认命令
  9. 添加自定义命令
  10. 复合扩展 - 基础
  11. 复合扩展 - 组合

我找到了一篇很棒的 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[] 数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM