【问题标题】:How do you show the Windows Explorer context menu from a C# application?如何从 C# 应用程序显示 Windows 资源管理器上下文菜单?
【发布时间】:2010-10-01 20:46:12
【问题描述】:

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

【问题讨论】:

    标签: c# contextmenu explorer


    【解决方案1】:

    【讨论】:

    • 这是完美的。不是在 C# 中,但它解释了如何做到这一点,这就是我所需要的。
    • 链接已失效,但 this is "Initial foray" 在新博客上。
    【解决方案2】:

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

    Explorer Shell Context Menu

    就像下面的代码sn-p一样简单:

    // 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[] 数组

    【讨论】:

    • 该库大部分时间都运行良好,但在某些情况下,由于 Delegates 发布得太早,它会崩溃,我似乎找不到在哪里。
    【解决方案3】:

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

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

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

    【讨论】:

    • 此解决方案显然仅适用于 .NET 2.0 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2010-09-27
    相关资源
    最近更新 更多