C# 如何在Winforms ListView中获取资源管理器右键单击菜单?

C# 如何在Winforms ListView中获取资源管理器右键单击菜单?,c#,.net,winforms,listview,explorer,C#,.net,Winforms,Listview,Explorer,我使用Winforms ListView来显示一些文件,但除了像资源管理器那样显示文件外,我还希望在右键单击其中的某个项目时,使用相同的资源管理器右键单击菜单 这可能吗?如何为我的ListView应用程序启用它?我知道的唯一方法是使用pinvoke和COM来实现。我认为,您需要的非托管API是。完成互操作后(首先检查pinvoke.net),就可以对所需的所有其他内容执行互操作。这并不容易。欢迎来到PIDLs之地。我在右键单击显示自定义上下文菜单时遇到了问题: 我仍然实现了一些不同: p

我使用Winforms ListView来显示一些文件,但除了像资源管理器那样显示文件外,我还希望在右键单击其中的某个项目时,使用相同的资源管理器右键单击菜单


这可能吗?如何为我的ListView应用程序启用它?

我知道的唯一方法是使用pinvoke和COM来实现。我认为,您需要的非托管API是。完成互操作后(首先检查pinvoke.net),就可以对所需的所有其他内容执行互操作。这并不容易。欢迎来到PIDLs之地。

我在右键单击显示自定义上下文菜单时遇到了问题:

我仍然实现了一些不同:

    private void lstModules_MouseDown(object sender , MouseEventArgs e)
    {
        hitTest = lstModules.HitTest(e.Location);

        switch (e.Button)
        {
            case MouseButtons.Right:
                if (hitTest != null && hitTest.Item != null)
                {
                    // right clicking an item in the listview
                    selectedModule = hitTest.Item.Name;

                    lstModules.ContextMenuStrip = mnuContext_OptionsA;
                }
                else
                { 
                    // right clicking in white area of listview
                    lstModules.ContextMenuStrip = mnuContext_OptionsB; 
                }
                break;
        }
    }

你需要这个界面。另请参阅。

谢谢,希望我能找到解决办法。我看了看pinvoke,但这些似乎不在那里。我不可能是第一个想要这种行为的人,对吧?你可以是第一个愿意和别人分享这种行为的人。这里明显缺少很多东西。你想要浏览器菜单还是类似浏览器的上下文菜单。现在listview中有什么代码?我刚刚在列表视图中做了一些上下文菜单的工作。谢谢,我指的是浏览器上下文菜单,它根据您右键单击的文件显示。现在,我的代码已经显示了带有项目的ListVIEW,但是还没有右键菜单。还考虑使用shell控件Lie shell MePAPACK——这些是具有上下文菜单、拖放、重命名、缩略图视图、详细视图等的类似于浏览器的控件,如Windows资源管理器。