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

有帮助吗?

解决方案

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

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

其他提示

我写了也许能帮助你的库。你可以使用库提供的控件,或者如果你不想这样做,通过代码寻找可能会给你一个答案。

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

请让我知道如果这有助于!

我发现一切都封装非常漂亮的为一类大的代码项目的文章!

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

这是一样容易下面的代码片断:

// 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归因
不隶属于 StackOverflow
scroll top